18.7 httplib -- HTTP プロトコルクライアント

このモジュールでは HTTP および HTTPS プロトコルのクライアント側 を実装しているクラスを定義しています。通常、このモジュールは直接 使いません -- urllib モジュールが HTTP や HTTPS を使った URL を扱う上でこのモジュールを使います。 注意: HTTPS のサポートは、SSL をサポートするように socket モジュールをコンパイルした場合にのみ利用できます。

このモジュールでは以下のクラスを提供しています:

クラス HTTPConnection( host[, port])
HTTPConnection インスタンスは、HTTP サーバとの一回の トランザクションを表現します。インスタンスの生成はホスト名と オプションのポート番号を与えて行います。ポート番号を指定しなかった 場合、ホスト名文字列が host:port の形式であれば、ホスト名からポート番号を導き、そうでない 場合には標準の HTTP ポート番号 (80) を使います。例えば、 以下の呼び出しは全て同じサーバの同じポートに接続するインスタンス を生成します:

>>> h1 = httplib.HTTPConnection('www.cwi.nl')
>>> h2 = httplib.HTTPConnection('www.cwi.nl:80')
>>> h3 = httplib.HTTPConnection('www.cwi.nl', 80)

クラス HTTPSConnection( host[, port, key_file, cert_file])
HTTPConnection のサブクラスで、セキュアなサーバと 通信するために SSL を使います。標準のポート番号は 443 です。 key_fileには、秘密鍵を格納したPEM形式ファイルのファイル名を指定します。cert_fileには、PEM形式の証明書チェーンファイルを指定します。

警告: この関数は証明書の検査を行いません!

必要に応じて以下の例外が送出されます:

exception HTTPException
このモジュールにおける他の例外クラスの基底クラスです。 Exception のサブクラスです。

exception NotConnected
HTTPException サブクラスです。

exception InvalidURL
HTTPException のサブクラスです。ポート番号を指定した ものの、その値が数字でなかったり空のオブジェクトであった場合に送出されます。

exception UnknownProtocol
HTTPException のサブクラスです。

exception UnknownTransferEncoding
HTTPException のサブクラスです。

exception IllegalKeywordArgument
HTTPException のサブクラスです。

exception UnimplementedFileMode
HTTPException のサブクラスです。

exception IncompleteRead
HTTPException のサブクラスです。

exception ImproperConnectionState
HTTPException のサブクラスです。

exception CannotSendRequest
ImproperConnectionState のサブクラスです。

exception CannotSendHeader
ImproperConnectionState のサブクラスです。

exception ResponseNotReady
ImproperConnectionState のサブクラスです。

exception BadStatusLine
HTTPException のサブクラスです。 サーバが理解できない HTTP 状態コードで応答した場合に送出されます。

このモジュールで定義されている定数は以下の通りです:

HTTP_PORT
HTTP プロトコルの標準のポート (通常は 80) です。

HTTPS_PORT
HTTPS プロトコルの標準のポート (通常は 443) です。

また、整数の状態コードについて以下の定数が定義されています:

Constant Value Definition
CONTINUE 100 HTTP/1.1, RFC 2616, Section 10.1.1
SWITCHING_PROTOCOLS 101 HTTP/1.1, RFC 2616, Section 10.1.2
PROCESSING 102 WEBDAV, RFC 2518, Section 10.1
OK 200 HTTP/1.1, RFC 2616, Section 10.2.1
CREATED 201 HTTP/1.1, RFC 2616, Section 10.2.2
ACCEPTED 202 HTTP/1.1, RFC 2616, Section 10.2.3
NON_AUTHORITATIVE_INFORMATION 203 HTTP/1.1, RFC 2616, Section 10.2.4
NO_CONTENT 204 HTTP/1.1, RFC 2616, Section 10.2.5
RESET_CONTENT 205 HTTP/1.1, RFC 2616, Section 10.2.6
PARTIAL_CONTENT 206 HTTP/1.1, RFC 2616, Section 10.2.7
MULTI_STATUS 207 WEBDAV RFC 2518, Section 10.2
IM_USED 226 Delta encoding in HTTP, RFC 3229, Section 10.4.1
MULTIPLE_CHOICES 300 HTTP/1.1, RFC 2616, Section 10.3.1
MOVED_PERMANENTLY 301 HTTP/1.1, RFC 2616, Section 10.3.2
FOUND 302 HTTP/1.1, RFC 2616, Section 10.3.3
SEE_OTHER 303 HTTP/1.1, RFC 2616, Section 10.3.4
NOT_MODIFIED 304 HTTP/1.1, RFC 2616, Section 10.3.5
USE_PROXY 305 HTTP/1.1, RFC 2616, Section 10.3.6
TEMPORARY_REDIRECT 307 HTTP/1.1, RFC 2616, Section 10.3.8
BAD_REQUEST 400 HTTP/1.1, RFC 2616, Section 10.4.1
UNAUTHORIZED 401 HTTP/1.1, RFC 2616, Section 10.4.2
PAYMENT_REQUIRED 402 HTTP/1.1, RFC 2616, Section 10.4.3
FORBIDDEN 403 HTTP/1.1, RFC 2616, Section 10.4.4
NOT_FOUND 404 HTTP/1.1, RFC 2616, Section 10.4.5
METHOD_NOT_ALLOWED 405 HTTP/1.1, RFC 2616, Section 10.4.6
NOT_ACCEPTABLE 406 HTTP/1.1, RFC 2616, Section 10.4.7
PROXY_AUTHENTICATION_REQUIRED 407 HTTP/1.1, RFC 2616, Section 10.4.8
REQUEST_TIMEOUT 408 HTTP/1.1, RFC 2616, Section 10.4.9
CONFLICT 409 HTTP/1.1, RFC 2616, Section 10.4.10
GONE 410 HTTP/1.1, RFC 2616, Section 10.4.11
LENGTH_REQUIRED 411 HTTP/1.1, RFC 2616, Section 10.4.12
PRECONDITION_FAILED 412 HTTP/1.1, RFC 2616, Section 10.4.13
REQUEST_ENTITY_TOO_LARGE 413 HTTP/1.1, RFC 2616, Section 10.4.14
REQUEST_URI_TOO_LONG 414 HTTP/1.1, RFC 2616, Section 10.4.15
UNSUPPORTED_MEDIA_TYPE 415 HTTP/1.1, RFC 2616, Section 10.4.16
REQUESTED_RANGE_NOT_SATISFIABLE 416 HTTP/1.1, RFC 2616, Section 10.4.17
EXPECTATION_FAILED 417 HTTP/1.1, RFC 2616, Section 10.4.18
UNPROCESSABLE_ENTITY 422 WEBDAV, RFC 2518, Section 10.3
LOCKED 423 WEBDAV RFC 2518, Section 10.4
FAILED_DEPENDENCY 424 WEBDAV, RFC 2518, Section 10.5
UPGRADE_REQUIRED 426 HTTP Upgrade to TLS, RFC 2817, Section 6
INTERNAL_SERVER_ERROR 500 HTTP/1.1, RFC 2616, Section 10.5.1
NOT_IMPLEMENTED 501 HTTP/1.1, RFC 2616, Section 10.5.2
BAD_GATEWAY 502 HTTP/1.1 RFC 2616, Section 10.5.3
SERVICE_UNAVAILABLE 503 HTTP/1.1, RFC 2616, Section 10.5.4
GATEWAY_TIMEOUT 504 HTTP/1.1 RFC 2616, Section 10.5.5
HTTP_VERSION_NOT_SUPPORTED 505 HTTP/1.1, RFC 2616, Section 10.5.6
INSUFFICIENT_STORAGE 507 WEBDAV, RFC 2518, Section 10.6
NOT_EXTENDED 510 An HTTP Extension Framework, RFC 2774, Section 7

responses
このディクショナリは、HTTP 1.1ステータスコードをW3Cの名前にマップしたものです。

たとえば httplib.responses[httplib.NOT_FOUND]'Not Found' となります。 バージョン 2.5 で 新たに追加 された仕様です。



Subsections
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。