BEGIN
{
our
$VERSION
=
'v0.200.1'
;
};
{
our
$CODES
=
{
100
=> Apache2::Const::HTTP_CONTINUE,
101
=> Apache2::Const::HTTP_SWITCHING_PROTOCOLS,
102
=> Apache2::Const::HTTP_PROCESSING,
200
=> Apache2::Const::HTTP_OK,
201
=> Apache2::Const::HTTP_CREATED,
202
=> Apache2::Const::HTTP_ACCEPTED,
203
=> Apache2::Const::HTTP_NON_AUTHORITATIVE,
204
=> Apache2::Const::HTTP_NO_CONTENT,
205
=> Apache2::Const::HTTP_RESET_CONTENT,
206
=> Apache2::Const::HTTP_PARTIAL_CONTENT,
207
=> Apache2::Const::HTTP_MULTI_STATUS,
300
=> Apache2::Const::HTTP_MULTIPLE_CHOICES,
301
=> Apache2::Const::HTTP_MOVED_PERMANENTLY,
302
=> Apache2::Const::HTTP_MOVED_TEMPORARILY,
303
=> Apache2::Const::HTTP_SEE_OTHER,
304
=> Apache2::Const::HTTP_NOT_MODIFIED,
305
=> Apache2::Const::HTTP_USE_PROXY,
307
=> Apache2::Const::HTTP_TEMPORARY_REDIRECT,
400
=> Apache2::Const::HTTP_BAD_REQUEST,
401
=> Apache2::Const::HTTP_UNAUTHORIZED,
402
=> Apache2::Const::HTTP_PAYMENT_REQUIRED,
403
=> Apache2::Const::HTTP_FORBIDDEN,
404
=> Apache2::Const::HTTP_NOT_FOUND,
405
=> Apache2::Const::HTTP_METHOD_NOT_ALLOWED,
406
=> Apache2::Const::HTTP_NOT_ACCEPTABLE,
407
=> Apache2::Const::HTTP_PROXY_AUTHENTICATION_REQUIRED,
408
=> Apache2::Const::HTTP_REQUEST_TIME_OUT,
409
=> Apache2::Const::HTTP_CONFLICT,
410
=> Apache2::Const::HTTP_GONE,
411
=> Apache2::Const::HTTP_LENGTH_REQUIRED,
412
=> Apache2::Const::HTTP_PRECONDITION_FAILED,
413
=> Apache2::Const::HTTP_REQUEST_ENTITY_TOO_LARGE,
414
=> Apache2::Const::HTTP_REQUEST_URI_TOO_LARGE,
415
=> Apache2::Const::HTTP_UNSUPPORTED_MEDIA_TYPE,
416
=> Apache2::Const::HTTP_RANGE_NOT_SATISFIABLE,
417
=> Apache2::Const::HTTP_EXPECTATION_FAILED,
422
=> Apache2::Const::HTTP_UNPROCESSABLE_ENTITY,
423
=> Apache2::Const::HTTP_LOCKED,
424
=> Apache2::Const::HTTP_FAILED_DEPENDENCY,
426
=> Apache2::Const::HTTP_UPGRADE_REQUIRED,
500
=> Apache2::Const::HTTP_INTERNAL_SERVER_ERROR,
501
=> Apache2::Const::HTTP_NOT_IMPLEMENTED,
502
=> Apache2::Const::HTTP_BAD_GATEWAY,
503
=> Apache2::Const::HTTP_SERVICE_UNAVAILABLE,
504
=> Apache2::Const::HTTP_GATEWAY_TIME_OUT,
506
=> Apache2::Const::HTTP_VARIANT_ALSO_VARIES,
507
=> Apache2::Const::HTTP_INSUFFICIENT_STORAGE,
510
=> Apache2::Const::HTTP_NOT_EXTENDED,
};
our
$HTTP_CODES
=
{
'fr_FR'
=>
{
100
=>
"Continuer"
,
101
=>
"Changement de protocole"
,
102
=>
"En traitement"
,
200
=>
"OK"
,
201
=>
"Créé"
,
202
=>
"Accepté"
,
203
=>
"Information non certifiée"
,
204
=>
"Pas de contenu"
,
205
=>
"Contenu réinitialisé"
,
206
=>
"Contenu partiel"
,
207
=>
"Multi-Status"
,
208
=>
"Déjà rapporté"
,
226
=>
"IM Used"
,
300
=>
"Choix multiples"
,
301
=>
"Changement d'adresse définitif"
,
302
=>
"Changement d'adresse temporaire"
,
303
=>
"Voir ailleurs"
,
304
=>
"Non modifié"
,
305
=>
"Utiliser le proxy"
,
307
=>
"Redirection temporaire"
,
308
=>
"Redirection permanente"
,
400
=>
"Mauvaise requête"
,
401
=>
"Non autorisé"
,
402
=>
"Paiement exigé"
,
403
=>
"Interdit"
,
404
=>
"Non trouvé"
,
405
=>
"Méthode non autorisée"
,
406
=>
"Aucun disponible"
,
407
=>
"Authentification proxy exigée"
,
408
=>
"Requête hors-délai"
,
409
=>
"Conflit"
,
410
=>
"Parti"
,
411
=>
"Longueur exigée"
,
412
=>
"Précondition échouée"
,
413
=>
"Corps de requête trop grand"
,
414
=>
"URI trop long"
,
415
=>
"Format non supporté"
,
416
=>
"Plage demandée invalide"
,
417
=>
"Comportement erroné"
,
418
=>
"I'm a teapot"
,
421
=>
"Requête mal dirigée"
,
422
=>
"Entité intraitable"
,
423
=>
"Vérouillé"
,
424
=>
"Dépendence échouée"
,
426
=>
"Mis-à-jour requise"
,
428
=>
"Précondition requise"
,
429
=>
"Trop de requête"
,
431
=>
"Champs d'entête de la requête trop large"
,
444
=>
"Connexion clôturée sans réponse"
,
451
=>
"Indisponible pour des raisons légales"
,
499
=>
"Le client a terminé la requête"
,
500
=>
"Erreur interne du serveur"
,
501
=>
"Non implémenté"
,
502
=>
"Mauvais intermédiaire"
,
503
=>
"Service indisponible"
,
504
=>
"Intermédiaire hors-délai"
,
505
=>
"Version HTTP non supportée"
,
506
=>
"Variant Also Negotiates"
,
507
=>
"Stoquage insuffisant"
,
508
=>
"Boucle detectée"
,
509
=>
"Limite de bande passante dépassée"
,
510
=>
"Pas étendu"
,
511
=>
"Autentification réseau requise"
,
599
=>
"Erreur de timeout connexion réseau"
,
},
'en_GB'
=>
{
100
=>
"Continue"
,
101
=>
"Switching Protocols"
,
102
=>
"Processing"
,
200
=>
"OK"
,
201
=>
"Created"
,
202
=>
"Accepted"
,
203
=>
"Non-authoritative Information"
,
204
=>
"No Content"
,
205
=>
"Reset Content"
,
206
=>
"Partial Content"
,
207
=>
"Multi-Status"
,
208
=>
"Already Reported"
,
226
=>
"IM Used"
,
300
=>
"Multiple Choices"
,
301
=>
"Moved Permanently"
,
302
=>
"Found"
,
303
=>
"See Other"
,
304
=>
"Not Modified"
,
305
=>
"Use Proxy"
,
307
=>
"Temporary Redirect"
,
308
=>
"Permanent Redirect"
,
400
=>
"Bad Request"
,
401
=>
"Unauthorized"
,
402
=>
"Payment Required"
,
403
=>
"Forbidden"
,
404
=>
"Not Found"
,
405
=>
"Method Not Allowed"
,
406
=>
"Not Acceptable"
,
407
=>
"Proxy Authentication Required"
,
408
=>
"Request Timeout"
,
409
=>
"Conflict"
,
410
=>
"Gone"
,
411
=>
"Length Required"
,
412
=>
"Precondition Failed"
,
413
=>
"Payload Too Large"
,
414
=>
"Request-URI Too Long"
,
415
=>
"Unsupported Media Type"
,
416
=>
"Requested Range Not Satisfiable"
,
417
=>
"Expectation Failed"
,
418
=>
"I'm a teapot"
,
421
=>
"Misdirected Request"
,
422
=>
"Unprocessable Entity"
,
423
=>
"Locked"
,
424
=>
"Failed Dependency"
,
426
=>
"Upgrade Required"
,
428
=>
"Precondition Required"
,
429
=>
"Too Many Requests"
,
431
=>
"Request Header Fields Too Large"
,
444
=>
"Connection Closed Without Response"
,
451
=>
"Unavailable For Legal Reasons"
,
499
=>
"Client Closed Request"
,
500
=>
"Internal Server Error"
,
501
=>
"Not Implemented"
,
502
=>
"Bad Gateway"
,
503
=>
"Service Unavailable"
,
504
=>
"Gateway Timeout"
,
505
=>
"HTTP Version Not Supported"
,
506
=>
"Variant Also Negotiates"
,
507
=>
"Insufficient Storage"
,
508
=>
"Loop Detected"
,
509
=>
"Bandwidth Limit Exceeded"
,
510
=>
"Not Extended"
,
511
=>
"Network Authentication Required"
,
599
=>
"Network Connect Timeout Error"
,
},
'ja_JP'
=>
{
100
=>
"継続"
,
101
=>
"プロトコル切替"
,
102
=>
"処理中"
,
200
=>
"成功"
,
201
=>
"作成完了"
,
202
=>
"受理"
,
203
=>
"信頼できない情報"
,
204
=>
"内容なし"
,
205
=>
"内容をリセット"
,
206
=>
"部分的内容"
,
207
=>
"複数のステータス"
,
208
=>
"既に報告"
,
226
=>
"IM使用"
,
300
=>
"複数の選択"
,
301
=>
"恒久的に移動した"
,
302
=>
"発見した"
,
303
=>
"他を参照せよ"
,
304
=>
"未更新"
,
305
=>
"プロキシを使用せよ"
,
307
=>
"一時的リダイレクト"
,
308
=>
"恒久的リダイレクト"
,
400
=>
"リクエストが不正である"
,
401
=>
"認証が必要である"
,
402
=>
"支払いが必要である"
,
403
=>
"禁止されている"
,
404
=>
"未検出"
,
405
=>
"許可されていないメソッド"
,
406
=>
"受理できない"
,
407
=>
"プロキシ認証が必要である"
,
408
=>
"リクエストタイムアウト"
,
409
=>
"競合"
,
410
=>
"消滅した"
,
411
=>
"長さが必要"
,
412
=>
"前提条件で失敗した"
,
413
=>
"ペイロードが大きすぎる"
,
414
=>
"URIが大きすぎる"
,
415
=>
"サポートしていないメディアタイプ"
,
416
=>
"レンジは範囲外にある"
,
417
=>
"Expectヘッダによる拡張が失敗"
,
418
=>
"私はティーポット"
,
421
=>
"誤ったリクエスト"
,
422
=>
"処理できないエンティティ"
,
423
=>
"ロックされている"
,
424
=>
"依存関係で失敗"
,
426
=>
"アップグレード要求"
,
428
=>
"条件付きリクエストを要求"
,
429
=>
"リクエスト過大で拒否した"
,
431
=>
"ヘッダサイズが過大"
,
444
=>
"Connection Closed Without Response"
,
451
=>
"法的理由により利用不可"
,
499
=>
"Client Closed Request"
,
500
=>
"サーバ内部エラー"
,
501
=>
"実装されていない"
,
502
=>
"不正なゲートウェイ"
,
503
=>
"サービス利用不可"
,
504
=>
"ゲートウェイタイムアウト"
,
505
=>
"サポートしていないHTTPバージョン"
,
506
=>
"Variant Also Negotiates"
,
507
=>
"容量不足"
,
508
=>
"ループを検出"
,
509
=>
"帯域幅制限超過"
,
510
=>
"拡張できない"
,
511
=>
"ネットワーク認証が必要"
,
599
=>
"ネットワーク接続タイムアウトエラー"
,
}
};
}
sub
init
{
my
$self
=
shift
(
@_
);
my
$r
=
shift
(
@_
);
$self
->SUPER::init(
@_
);
return
(
$self
);
}
sub
is_info {
$_
[ 1 ] >= 100 &&
$_
[ 1 ] < 200; }
sub
is_success {
$_
[ 1 ] >= 200 &&
$_
[ 1 ] < 300; }
sub
is_redirect {
$_
[ 1 ] >= 300 &&
$_
[ 1 ] < 400; }
sub
is_error {
$_
[ 1 ] >= 400 &&
$_
[ 1 ] < 600; }
sub
is_client_error {
$_
[ 1 ] >= 400 &&
$_
[ 1 ] < 500; }
sub
is_server_error {
$_
[ 1 ] >= 500 &&
$_
[ 1 ] < 600; }
sub
status_message
{
my
$self
=
shift
(
@_
);
my
(
$code
,
$lang
);
if
(
scalar
(
@_
) == 2 )
{
(
$code
,
$lang
) =
@_
;
}
else
{
$code
=
shift
(
@_
);
$lang
=
'en_GB'
;
}
$lang
=
'en_GB'
if
( !
exists
(
$HTTP_CODES
->{
$lang
} ) );
my
$ref
=
$HTTP_CODES
->{
$lang
};
return
(
$ref
->{
$code
} );
}
1;