requests --- HTTPクライアント¶
requests モジュールは、Python requests ライブラリに似た最小限のHTTP/HTTPSクライアントAPIを提供します。各リクエスト関数は requests.Response オブジェクトを返します。
例:
import requests
# GET a JSON resource.
r = requests.get("https://httpbin.org/get")
print(r.status_code, r.reason)
print(r.json())
# POST JSON.
r = requests.post(
"https://httpbin.org/post",
json={"id": 1, "value": 42},
headers={"X-Source": "openmv"},
)
print(r.json())
Responseクラス¶
- class requests.Response(code: int, reason: str, headers: bytes = None, content: bytes = None)¶
HTTPレスポンスを表します。インスタンスは
requests.requestおよび各メソッドのヘルパーによって返されます。- encoding: str¶
requests.Response.headersとrequests.Response.contentのデコードに使用される文字列エンコーディング。デフォルトは"utf-8"です。
- headers: str¶
requests.Response.encodingでデコードされ、strとして返されるレスポンスヘッダー。
- content: str¶
requests.Response.encodingでデコードされ、strとして返されるレスポンスボディ。
- json() dict¶
requests.Response.contentをJSONとして解析し、得られたオブジェクトを返します。
関数¶
- requests.request(method: str, url: str, data: bytes | None = None, json: Any | None = None, files: dict | None = None, headers: dict = {}, auth: tuple | None = None, stream: Any | None = None) Response¶
urlにHTTPリクエストを送信し、requests.Responseを返します。method---strとしてのHTTPメソッド("GET"、"POST"など)。url--- 対象URL。http://またはhttps://で始まる必要があります。data--- 生のリクエストボディ。設定されている場合、Content-Lengthが自動的に追加されます。json--- JSONにシリアライズされてボディとして送信されるオブジェクト。Content-Type: application/jsonを設定します。files--- フィールド名を(filename, fileobj)タプルにマッピングする辞書。multipart/form-dataとして送信されます。headers--- 追加のリクエストヘッダーの辞書。auth--- HTTP Basic認証用の(username, password)タプル。stream--- API互換性のために受け付けられますが、使用されません。
- requests.head(url: str, **kw: Any) Response¶
HTTP
HEADリクエストを送信し、Responseを返します。HEADは、サーバーがステータス行とヘッダーのみを返しボディが空であることを除いて、GETと同一です。リソースが存在するかどうかの確認、ペイロードをダウンロードせずにContent-Length/Content-Typeを調べる、より重いGETを発行する前にURLを探る、といった用途に使用します。引数:
url-- 対象URL。http://またはhttps://で始まる必要があります。headers(キーワード引数)-- 追加のリクエストヘッダーの辞書。auth(キーワード引数)-- HTTP Basic認証用の(username, password)タプル。
request()のdata/json/files/streamは完全性のために受け付けられますが、HEADで意味をなすことはまれです。
- requests.get(url: str, **kw: Any) Response¶
HTTP
GETリクエストを送信し、Responseを返します。GETは、urlで識別されるリソースの表現を取得するための標準的な動詞です。安全(サーバー側の状態変更を引き起こさない)かつ冪等です。引数:
url-- 対象URL。http://またはhttps://で始まる必要があります。headers(キーワード引数)-- 追加のリクエストヘッダーの辞書(AuthorizationやAcceptなど)。auth(キーワード引数)-- HTTP Basic認証用の(username, password)タプル。
data/jsonによるリクエストボディは基盤となるrequest()では許可されますが、ほとんどのサーバーでは無視されます。
- requests.post(url: str, **kw: Any) Response¶
HTTP
POSTリクエストを送信し、Responseを返します。POSTはurlにデータを送信し、通常は新しい従属リソースの作成、フォーム送信のトリガー、またはアクションの呼び出しを行います。安全でも冪等でもありません。繰り返し呼び出すと重複したリソースが作成される可能性があります。引数:
url-- 対象URL。http://またはhttps://で始まる必要があります。data(キーワード引数)-- 生のリクエストボディ(bytes様)。自動的にContent-Lengthヘッダーを送信します。json(キーワード引数)-- JSONにシリアライズされてボディとして送信されるオブジェクト。Content-Type: application/jsonを設定します。files(キーワード引数)-- フィールド名を(filename, fileobj)にマッピングする辞書。multipart/form-dataとして送信されます。headers(キーワード引数)-- 追加のリクエストヘッダーの辞書。auth(キーワード引数)-- HTTP Basic認証用の(username, password)タプル。
data/json/filesのうち、最大1つを渡してください。
- requests.put(url: str, **kw: Any) Response¶
HTTP
PUTリクエストを送信し、Responseを返します。PUTはurlのリソースを指定された表現で置き換え、存在しない場合は作成します。冪等です。同一のPUTを繰り返しても同じ最終状態になります。引数:
url-- 対象URL。http://またはhttps://で始まる必要があります。data(キーワード引数)-- 生の置換ボディ(bytes様)。json(キーワード引数)-- JSONにシリアライズされて置換ボディとして送信されるオブジェクト。Content-Type: application/jsonを設定します。headers(キーワード引数)-- 追加のリクエストヘッダーの辞書。auth(キーワード引数)-- HTTP Basic認証用の(username, password)タプル。
新しい表現を運ぶために
dataまたはjsonのいずれかを渡してください。
- requests.patch(url: str, **kw: Any) Response¶
HTTP
PATCHリクエストを送信し、Responseを返します。PATCHはurlのリソースに部分的な変更を適用します。リクエストボディに含まれるフィールドのみが変更されます。PUTとは異なり、冪等であることは要求されません(ただし多くのAPIは冪等にしています)。引数:
url-- 対象URL。http://またはhttps://で始まる必要があります。data(キーワード引数)-- 生の差分ボディ(bytes様)。形式はサーバーによって異なります(JSON Patch、JSON Merge Patch など)。json(キーワード引数)-- JSONにシリアライズされた差分オブジェクト。Content-Type: application/jsonを設定します。headers(キーワード引数)-- 追加のリクエストヘッダーの辞書。auth(キーワード引数)-- HTTP Basic認証用の(username, password)タプル。
- requests.delete(url: str, **kw: Any) Response¶
HTTP
DELETEリクエストを送信し、Responseを返します。DELETEはurlのリソースの削除を要求します。冪等です。すでに削除されたリソースを削除してもエラーにはなりません(サーバーは通常404を返しますが、最終状態は同じです)。引数:
url-- 対象URL。http://またはhttps://で始まる必要があります。headers(キーワード引数)-- 追加のリクエストヘッダーの辞書。auth(キーワード引数)-- HTTP Basic認証用の(username, password)タプル。
data/jsonによるボディは基盤となるrequest()では許可されますが、DELETEで使用されることはまれです。