Python-network-programming-python-http-client

提供:Dev Guides
移動先:案内検索

Python-HTTPクライアント

httpプロトコルでは、クライアントからの要求はサーバーに到達し、それが有効な要求であると仮定して、データとメタデータを取得します。 python要求モジュールで使用可能なさまざまな関数を使用して、サーバーからのこの応答を分析できます。 ここでは、以下のpythonプログラムがクライアント側で実行され、サーバーから送信された応答の結果を表示します。

初期応答を取得

以下のプログラムでは、要求モジュールからのgetメソッドがサーバーからデータをフェッチし、プレーンテキスト形式で印刷されます。

import requests
r = requests.get('https://httpbin.org/')
print(r.text)[:200]

上記のプログラムを実行すると、次の出力が得られます-

<!DOCTYPE html >
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>httpbin.org</title>
  <link
href="https://fonts.googleapis.com/css?family=Open+Sans:400,700|Source+Code+Pro:300,600|Titillium+

セッションオブジェクトレスポンスの取得

Sessionオブジェクトを使用すると、リクエスト間で特定のパラメータを保持できます。 また、Sessionインスタンスから出されたすべてのリクエストにわたってcookieを保持します。 同じホストに対して複数のリクエストを行っている場合、基盤となるTCP接続が再利用されます。

import requests
s = requests.Session()

s.get('http://httpbin.org/cookies/set/sessioncookie/31251425')
r = s.get('http://httpbin.org/cookies')

print(r.text)

上記のプログラムを実行すると、次の出力が得られます-

{"cookies":{"sessioncookie":"31251425"}}

エラー処理

サーバーによるリクエストの処理の問題が原因で何らかのエラーが発生した場合、pythonプログラムは以下に示すようにタイムアウトパラメーターを使用して発生した例外を適切に処理できます。 プログラムは、タイムアウトエラーの定義された値を待機し、タイムアウトエラーを発生させます。

requests.get('http://github.com', timeout=10.001)