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 および各メソッドのヘルパーによって返されます。

status_code: int

サーバーが返した整数のHTTPステータスコード。

reason: str

サーバーが返した理由フレーズ(デコードされた str)。

encoding: str

requests.Response.headersrequests.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(キーワード引数)-- 追加のリクエストヘッダーの辞書(AuthorizationAccept など)。

  • auth(キーワード引数)-- HTTP Basic認証用の (username, password) タプル。

data / json によるリクエストボディは基盤となる request() では許可されますが、ほとんどのサーバーでは無視されます。

requests.post(url: str, **kw: Any) Response

HTTP POST リクエストを送信し、Response を返します。

POSTurl にデータを送信し、通常は新しい従属リソースの作成、フォーム送信のトリガー、またはアクションの呼び出しを行います。安全でも冪等でもありません。繰り返し呼び出すと重複したリソースが作成される可能性があります。

引数:

  • 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 を返します。

PUTurl のリソースを指定された表現で置き換え、存在しない場合は作成します。冪等です。同一の 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 を返します。

PATCHurl のリソースに部分的な変更を適用します。リクエストボディに含まれるフィールドのみが変更されます。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 を返します。

DELETEurl のリソースの削除を要求します。冪等です。すでに削除されたリソースを削除してもエラーにはなりません(サーバーは通常404を返しますが、最終状態は同じです)。

引数:

  • url -- 対象URL。http:// または https:// で始まる必要があります。

  • headers(キーワード引数)-- 追加のリクエストヘッダーの辞書。

  • auth(キーワード引数)-- HTTP Basic認証用の (username, password) タプル。

data / json によるボディは基盤となる request() では許可されますが、DELETE で使用されることはまれです。