APIRequestContext
このAPIは、Web APIテストに使用されます。APIエンドポイントをトリガーしたり、マイクロサービスを設定したり、e2eテストの環境またはサービスを準備するために使用できます。
各Playwrightブラウザコンテキストには、APIRequestContextインスタンスが関連付けられており、ブラウザコンテキストとCookieストレージを共有し、browser_context.requestまたはpage.requestからアクセスできます。 api_request.new_context()を呼び出すことで、新しいAPIRequestContextインスタンスを手動で作成することもできます。
Cookie管理
APIRequestContextは、browser_context.requestおよびpage.requestによって返され、対応するBrowserContextとCookieストレージを共有します。 各APIリクエストには、ブラウザコンテキストの値が設定されたCookie
ヘッダーが含まれます。 APIレスポンスにSet-Cookie
ヘッダーが含まれている場合、BrowserContext Cookieが自動的に更新され、ページから行われたリクエストはそれらを拾い上げます。 これは、このAPIを使用してログインすると、e2eテストがログインされ、逆もまた同様であることを意味します。
APIリクエストがブラウザCookieに干渉しないようにする場合は、APIRequestContextをapi_request.new_context()を呼び出すことによって新しく作成する必要があります。 そのようなAPIRequestContext
オブジェクトは、独自の分離されたCookieストレージを持ちます。
- Sync
- Async
import os
from playwright.sync_api import sync_playwright
REPO = "test-repo-1"
USER = "github-username"
API_TOKEN = os.getenv("GITHUB_API_TOKEN")
with sync_playwright() as p:
# This will launch a new browser, create a context and page. When making HTTP
# requests with the internal APIRequestContext (e.g. `context.request` or `page.request`)
# it will automatically set the cookies to the browser page and vice versa.
browser = p.chromium.launch()
context = browser.new_context(base_url="https://api.github.com")
api_request_context = context.request
page = context.new_page()
# Alternatively you can create a APIRequestContext manually without having a browser context attached:
# api_request_context = p.request.new_context(base_url="https://api.github.com")
# Create a repository.
response = api_request_context.post(
"/user/repos",
headers={
"Accept": "application/vnd.github.v3+json",
# Add GitHub personal access token.
"Authorization": f"token {API_TOKEN}",
},
data={"name": REPO},
)
assert response.ok
assert response.json()["name"] == REPO
# Delete a repository.
response = api_request_context.delete(
f"/repos/{USER}/{REPO}",
headers={
"Accept": "application/vnd.github.v3+json",
# Add GitHub personal access token.
"Authorization": f"token {API_TOKEN}",
},
)
assert response.ok
assert await response.body() == '{"status": "ok"}'
import os
import asyncio
from playwright.async_api import async_playwright, Playwright
REPO = "test-repo-1"
USER = "github-username"
API_TOKEN = os.getenv("GITHUB_API_TOKEN")
async def run(playwright: Playwright):
# This will launch a new browser, create a context and page. When making HTTP
# requests with the internal APIRequestContext (e.g. `context.request` or `page.request`)
# it will automatically set the cookies to the browser page and vice versa.
browser = await playwright.chromium.launch()
context = await browser.new_context(base_url="https://api.github.com")
api_request_context = context.request
page = await context.new_page()
# Alternatively you can create a APIRequestContext manually without having a browser context attached:
# api_request_context = await playwright.request.new_context(base_url="https://api.github.com")
# Create a repository.
response = await api_request_context.post(
"/user/repos",
headers={
"Accept": "application/vnd.github.v3+json",
# Add GitHub personal access token.
"Authorization": f"token {API_TOKEN}",
},
data={"name": REPO},
)
assert response.ok
assert response.json()["name"] == REPO
# Delete a repository.
response = await api_request_context.delete(
f"/repos/{USER}/{REPO}",
headers={
"Accept": "application/vnd.github.v3+json",
# Add GitHub personal access token.
"Authorization": f"token {API_TOKEN}",
},
)
assert response.ok
assert await response.body() == '{"status": "ok"}'
async def main():
async with async_playwright() as playwright:
await run(playwright)
asyncio.run(main())
メソッド
delete
バージョン v1.16 で追加DELETEリクエストをHTTP(S)で送信し、そのレスポンスを返します。 このメソッドは、コンテキストからリクエストCookieを設定し、レスポンスからコンテキストCookieを更新します。 このメソッドは、自動的にリダイレクトに従います。
使用例
api_request_context.delete(url)
api_request_context.delete(url, **kwargs)
引数
-
ターゲットURL。
-
data
str | bytes | Dict (オプション)バージョン v1.17 で追加#リクエストのPOSTデータを設定できます。 dataパラメーターがオブジェクトの場合、JSON文字列にシリアライズされ、
content-type
ヘッダーが明示的に設定されていない場合はapplication/json
に設定されます。 それ以外の場合、content-type
ヘッダーは、明示的に設定されていない場合はapplication/octet-stream
に設定されます。 -
fail_on_status_code
bool (オプション)#2xxおよび3xx以外のレスポンスコードで例外をスローするかどうか。 デフォルトでは、すべてのステータスコードに対してレスポンスオブジェクトが返されます。
-
form
Dict[str, str | float | bool] (オプション)バージョン v1.17 で追加#application/x-www-form-urlencoded
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、application/x-www-form-urlencoded
に設定されます。 -
headers
Dict[str, str] (オプション)#HTTPヘッダーを設定できます。これらのヘッダーは、フェッチされたリクエストと、それによって開始されたリダイレクトに適用されます。
-
ignore_https_errors
bool (オプション)#ネットワークリクエストの送信時にHTTPSエラーを無視するかどうか。 デフォルトは
false
です。 -
max_redirects
int (オプション)バージョン v1.26 で追加#自動的に追跡されるリクエストリダイレクトの最大数。 この数を超えるとエラーがスローされます。 デフォルトは
20
です。 リダイレクトを追跡しない場合は0
を渡します。 -
max_retries
int (オプション)バージョン v1.46 で追加#ネットワークエラーを再試行する最大回数。 現在、
ECONNRESET
エラーのみが再試行されます。 HTTPレスポンスコードに基づいて再試行しません。 制限を超えるとエラーがスローされます。 デフォルトは0
- 再試行なし。 -
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (オプション)バージョン v1.17 で追加#multipart/form-data
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、multipart/form-data
に設定されます。 ファイル値は、ファイル名、MIMEタイプ、およびその内容を含むファイルライクオブジェクトとして渡すことができます。 -
params
Dict[str, str | float | bool] | str (オプション)#URLとともに送信されるクエリパラメーター。
-
リクエストタイムアウト(ミリ秒単位)。 デフォルトは
30000
(30秒)です。 タイムアウトを無効にするには0
を渡します。
戻り値
dispose
バージョン v1.16 で追加api_request_context.get()および同様のメソッドによって返されるすべてのレスポンスは、メモリに保存されるため、後でapi_response.body()を呼び出すことができます。このメソッドは、すべてのリソースを破棄し、破棄されたAPIRequestContextでメソッドを呼び出すと例外がスローされます。
使用例
api_request_context.dispose()
api_request_context.dispose(**kwargs)
引数
戻り値
fetch
バージョン v1.16 で追加HTTP(S)リクエストを送信し、そのレスポンスを返します。 このメソッドは、コンテキストからリクエストCookieを設定し、レスポンスからコンテキストCookieを更新します。 このメソッドは、自動的にリダイレクトに従います。
使用例
JSONオブジェクトはリクエストに直接渡すことができます
data = {
"title": "Book Title",
"body": "John Doe",
}
api_request_context.fetch("https://example.com/api/createBook", method="post", data=data)
リクエストの本文でファイルを送信する一般的な方法は、multipart
パラメーターを指定して、multipart/form-data
エンコーディングでフォームフィールドとしてアップロードすることです
api_request_context.fetch(
"https://example.com/api/uploadScript", method="post",
multipart={
"fileField": {
"name": "f.js",
"mimeType": "text/javascript",
"buffer": b"console.log(2022);",
},
})
引数
-
すべてのパラメーターを取得するためのターゲットURLまたはリクエスト。
-
data
str | bytes | Dict (オプション)#リクエストのPOSTデータを設定できます。 dataパラメーターがオブジェクトの場合、JSON文字列にシリアライズされ、
content-type
ヘッダーが明示的に設定されていない場合はapplication/json
に設定されます。 それ以外の場合、content-type
ヘッダーは、明示的に設定されていない場合はapplication/octet-stream
に設定されます。 -
fail_on_status_code
bool (オプション)#2xxおよび3xx以外のレスポンスコードで例外をスローするかどうか。 デフォルトでは、すべてのステータスコードに対してレスポンスオブジェクトが返されます。
-
form
Dict[str, str | float | bool] (オプション)#application/x-www-form-urlencoded
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、application/x-www-form-urlencoded
に設定されます。 -
headers
Dict[str, str] (オプション)#HTTPヘッダーを設定できます。これらのヘッダーは、フェッチされたリクエストと、それによって開始されたリダイレクトに適用されます。
-
ignore_https_errors
bool (オプション)#ネットワークリクエストの送信時にHTTPSエラーを無視するかどうか。 デフォルトは
false
です。 -
max_redirects
int (オプション)バージョン v1.26 で追加#自動的に追跡されるリクエストリダイレクトの最大数。 この数を超えるとエラーがスローされます。 デフォルトは
20
です。 リダイレクトを追跡しない場合は0
を渡します。 -
max_retries
int (オプション)バージョン v1.46 で追加#ネットワークエラーを再試行する最大回数。 現在、
ECONNRESET
エラーのみが再試行されます。 HTTPレスポンスコードに基づいて再試行しません。 制限を超えるとエラーがスローされます。 デフォルトは0
- 再試行なし。 -
設定すると、fetchメソッドを変更します(例:PUTまたはPOST)。 指定しない場合、GETメソッドが使用されます。
-
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (オプション)#multipart/form-data
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、multipart/form-data
に設定されます。 ファイル値は、ファイル名、MIMEタイプ、およびその内容を含むファイルライクオブジェクトとして渡すことができます。 -
params
Dict[str, str | float | bool] | str (オプション)#URLとともに送信されるクエリパラメーター。
-
リクエストタイムアウト(ミリ秒単位)。 デフォルトは
30000
(30秒)です。 タイムアウトを無効にするには0
を渡します。
戻り値
get
バージョン v1.16 で追加GETリクエストをHTTP(S)で送信し、そのレスポンスを返します。 このメソッドは、コンテキストからリクエストCookieを設定し、レスポンスからコンテキストCookieを更新します。 このメソッドは、自動的にリダイレクトに従います。
使用例
リクエストパラメーターはparams
オプションで設定でき、URL検索パラメーターにシリアライズされます
query_params = {
"isbn": "1234",
"page": "23"
}
api_request_context.get("https://example.com/api/getText", params=query_params)
引数
-
ターゲットURL。
-
data
str | bytes | Dict (オプション)バージョン v1.26 で追加#リクエストのPOSTデータを設定できます。 dataパラメーターがオブジェクトの場合、JSON文字列にシリアライズされ、
content-type
ヘッダーが明示的に設定されていない場合はapplication/json
に設定されます。 それ以外の場合、content-type
ヘッダーは、明示的に設定されていない場合はapplication/octet-stream
に設定されます。 -
fail_on_status_code
bool (オプション)#2xxおよび3xx以外のレスポンスコードで例外をスローするかどうか。 デフォルトでは、すべてのステータスコードに対してレスポンスオブジェクトが返されます。
-
form
Dict[str, str | float | bool] (オプション)バージョン v1.26 で追加#application/x-www-form-urlencoded
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、application/x-www-form-urlencoded
に設定されます。 -
headers
Dict[str, str] (オプション)#HTTPヘッダーを設定できます。これらのヘッダーは、フェッチされたリクエストと、それによって開始されたリダイレクトに適用されます。
-
ignore_https_errors
bool (オプション)#ネットワークリクエストの送信時にHTTPSエラーを無視するかどうか。 デフォルトは
false
です。 -
max_redirects
int (オプション)バージョン v1.26 で追加#自動的に追跡されるリクエストリダイレクトの最大数。 この数を超えるとエラーがスローされます。 デフォルトは
20
です。 リダイレクトを追跡しない場合は0
を渡します。 -
max_retries
int (オプション)バージョン v1.46 で追加#ネットワークエラーを再試行する最大回数。 現在、
ECONNRESET
エラーのみが再試行されます。 HTTPレスポンスコードに基づいて再試行しません。 制限を超えるとエラーがスローされます。 デフォルトは0
- 再試行なし。 -
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (オプション)バージョン v1.26 で追加#multipart/form-data
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、multipart/form-data
に設定されます。 ファイル値は、ファイル名、MIMEタイプ、およびその内容を含むファイルライクオブジェクトとして渡すことができます。 -
params
Dict[str, str | float | bool] | str (オプション)#URLとともに送信されるクエリパラメーター。
-
リクエストタイムアウト(ミリ秒単位)。 デフォルトは
30000
(30秒)です。 タイムアウトを無効にするには0
を渡します。
戻り値
head
バージョン v1.16 で追加HEADリクエストをHTTP(S)で送信し、そのレスポンスを返します。 このメソッドは、コンテキストからリクエストCookieを設定し、レスポンスからコンテキストCookieを更新します。 このメソッドは、自動的にリダイレクトに従います。
使用例
api_request_context.head(url)
api_request_context.head(url, **kwargs)
引数
-
ターゲットURL。
-
data
str | bytes | Dict (オプション)バージョン v1.26 で追加#リクエストのPOSTデータを設定できます。 dataパラメーターがオブジェクトの場合、JSON文字列にシリアライズされ、
content-type
ヘッダーが明示的に設定されていない場合はapplication/json
に設定されます。 それ以外の場合、content-type
ヘッダーは、明示的に設定されていない場合はapplication/octet-stream
に設定されます。 -
fail_on_status_code
bool (オプション)#2xxおよび3xx以外のレスポンスコードで例外をスローするかどうか。 デフォルトでは、すべてのステータスコードに対してレスポンスオブジェクトが返されます。
-
form
Dict[str, str | float | bool] (オプション)バージョン v1.26 で追加#application/x-www-form-urlencoded
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、application/x-www-form-urlencoded
に設定されます。 -
headers
Dict[str, str] (オプション)#HTTPヘッダーを設定できます。これらのヘッダーは、フェッチされたリクエストと、それによって開始されたリダイレクトに適用されます。
-
ignore_https_errors
bool (オプション)#ネットワークリクエストの送信時にHTTPSエラーを無視するかどうか。 デフォルトは
false
です。 -
max_redirects
int (オプション)バージョン v1.26 で追加#自動的に追跡されるリクエストリダイレクトの最大数。 この数を超えるとエラーがスローされます。 デフォルトは
20
です。 リダイレクトを追跡しない場合は0
を渡します。 -
max_retries
int (オプション)バージョン v1.46 で追加#ネットワークエラーを再試行する最大回数。 現在、
ECONNRESET
エラーのみが再試行されます。 HTTPレスポンスコードに基づいて再試行しません。 制限を超えるとエラーがスローされます。 デフォルトは0
- 再試行なし。 -
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (オプション)バージョン v1.26 で追加#multipart/form-data
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、multipart/form-data
に設定されます。 ファイル値は、ファイル名、MIMEタイプ、およびその内容を含むファイルライクオブジェクトとして渡すことができます。 -
params
Dict[str, str | float | bool] | str (オプション)#URLとともに送信されるクエリパラメーター。
-
リクエストタイムアウト(ミリ秒単位)。 デフォルトは
30000
(30秒)です。 タイムアウトを無効にするには0
を渡します。
戻り値
patch
バージョン v1.16 で追加PATCHリクエストをHTTP(S)で送信し、そのレスポンスを返します。 このメソッドは、コンテキストからリクエストCookieを設定し、レスポンスからコンテキストCookieを更新します。 このメソッドは、自動的にリダイレクトに従います。
使用例
api_request_context.patch(url)
api_request_context.patch(url, **kwargs)
引数
-
ターゲットURL。
-
data
str | bytes | Dict (オプション)#リクエストのPOSTデータを設定できます。 dataパラメーターがオブジェクトの場合、JSON文字列にシリアライズされ、
content-type
ヘッダーが明示的に設定されていない場合はapplication/json
に設定されます。 それ以外の場合、content-type
ヘッダーは、明示的に設定されていない場合はapplication/octet-stream
に設定されます。 -
fail_on_status_code
bool (オプション)#2xxおよび3xx以外のレスポンスコードで例外をスローするかどうか。 デフォルトでは、すべてのステータスコードに対してレスポンスオブジェクトが返されます。
-
form
Dict[str, str | float | bool] (オプション)#application/x-www-form-urlencoded
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、application/x-www-form-urlencoded
に設定されます。 -
headers
Dict[str, str] (オプション)#HTTPヘッダーを設定できます。これらのヘッダーは、フェッチされたリクエストと、それによって開始されたリダイレクトに適用されます。
-
ignore_https_errors
bool (オプション)#ネットワークリクエストの送信時にHTTPSエラーを無視するかどうか。 デフォルトは
false
です。 -
max_redirects
int (オプション)バージョン v1.26 で追加#自動的に追跡されるリクエストリダイレクトの最大数。 この数を超えるとエラーがスローされます。 デフォルトは
20
です。 リダイレクトを追跡しない場合は0
を渡します。 -
max_retries
int (オプション)バージョン v1.46 で追加#ネットワークエラーを再試行する最大回数。 現在、
ECONNRESET
エラーのみが再試行されます。 HTTPレスポンスコードに基づいて再試行しません。 制限を超えるとエラーがスローされます。 デフォルトは0
- 再試行なし。 -
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (オプション)#multipart/form-data
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、multipart/form-data
に設定されます。 ファイル値は、ファイル名、MIMEタイプ、およびその内容を含むファイルライクオブジェクトとして渡すことができます。 -
params
Dict[str, str | float | bool] | str (オプション)#URLとともに送信されるクエリパラメーター。
-
リクエストタイムアウト(ミリ秒単位)。 デフォルトは
30000
(30秒)です。 タイムアウトを無効にするには0
を渡します。
戻り値
post
バージョン v1.16 で追加POSTリクエストをHTTP(S)で送信し、そのレスポンスを返します。 このメソッドは、コンテキストからリクエストCookieを設定し、レスポンスからコンテキストCookieを更新します。 このメソッドは、自動的にリダイレクトに従います。
使用例
JSONオブジェクトはリクエストに直接渡すことができます
data = {
"title": "Book Title",
"body": "John Doe",
}
api_request_context.post("https://example.com/api/createBook", data=data)
フォームデータをサーバーに送信するには、form
オプションを使用します。 その値は、application/x-www-form-urlencoded
エンコーディングでリクエストボディにエンコードされます(ファイルを送信するためにmultipart/form-data
フォームエンコーディングを使用する方法については、以下を参照してください)。
formData = {
"title": "Book Title",
"body": "John Doe",
}
api_request_context.post("https://example.com/api/findBook", form=formData)
リクエストの本文でファイルを送信する一般的な方法は、multipart/form-data
エンコーディングでフォームフィールドとしてアップロードすることです。 [FormData]を使用してリクエストボディを構築し、multipart
パラメーターとしてリクエストに渡します
api_request_context.post(
"https://example.com/api/uploadScript'",
multipart={
"fileField": {
"name": "f.js",
"mimeType": "text/javascript",
"buffer": b"console.log(2022);",
},
})
引数
-
ターゲットURL。
-
data
str | bytes | Dict (オプション)#リクエストのPOSTデータを設定できます。 dataパラメーターがオブジェクトの場合、JSON文字列にシリアライズされ、
content-type
ヘッダーが明示的に設定されていない場合はapplication/json
に設定されます。 それ以外の場合、content-type
ヘッダーは、明示的に設定されていない場合はapplication/octet-stream
に設定されます。 -
fail_on_status_code
bool (オプション)#2xxおよび3xx以外のレスポンスコードで例外をスローするかどうか。 デフォルトでは、すべてのステータスコードに対してレスポンスオブジェクトが返されます。
-
form
Dict[str, str | float | bool] (オプション)#application/x-www-form-urlencoded
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、application/x-www-form-urlencoded
に設定されます。 -
headers
Dict[str, str] (オプション)#HTTPヘッダーを設定できます。これらのヘッダーは、フェッチされたリクエストと、それによって開始されたリダイレクトに適用されます。
-
ignore_https_errors
bool (オプション)#ネットワークリクエストの送信時にHTTPSエラーを無視するかどうか。 デフォルトは
false
です。 -
max_redirects
int (オプション)バージョン v1.26 で追加#自動的に追跡されるリクエストリダイレクトの最大数。 この数を超えるとエラーがスローされます。 デフォルトは
20
です。 リダイレクトを追跡しない場合は0
を渡します。 -
max_retries
int (オプション)バージョン v1.46 で追加#ネットワークエラーを再試行する最大回数。 現在、
ECONNRESET
エラーのみが再試行されます。 HTTPレスポンスコードに基づいて再試行しません。 制限を超えるとエラーがスローされます。 デフォルトは0
- 再試行なし。 -
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (オプション)#multipart/form-data
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、multipart/form-data
に設定されます。 ファイル値は、ファイル名、MIMEタイプ、およびその内容を含むファイルライクオブジェクトとして渡すことができます。 -
params
Dict[str, str | float | bool] | str (オプション)#URLとともに送信されるクエリパラメーター。
-
リクエストタイムアウト(ミリ秒単位)。 デフォルトは
30000
(30秒)です。 タイムアウトを無効にするには0
を渡します。
戻り値
put
バージョン v1.16 で追加PUTリクエストをHTTP(S)で送信し、そのレスポンスを返します。 このメソッドは、コンテキストからリクエストCookieを設定し、レスポンスからコンテキストCookieを更新します。 このメソッドは、自動的にリダイレクトに従います。
使用例
api_request_context.put(url)
api_request_context.put(url, **kwargs)
引数
-
ターゲットURL。
-
data
str | bytes | Dict (オプション)#リクエストのPOSTデータを設定できます。 dataパラメーターがオブジェクトの場合、JSON文字列にシリアライズされ、
content-type
ヘッダーが明示的に設定されていない場合はapplication/json
に設定されます。 それ以外の場合、content-type
ヘッダーは、明示的に設定されていない場合はapplication/octet-stream
に設定されます。 -
fail_on_status_code
bool (オプション)#2xxおよび3xx以外のレスポンスコードで例外をスローするかどうか。 デフォルトでは、すべてのステータスコードに対してレスポンスオブジェクトが返されます。
-
form
Dict[str, str | float | bool] (オプション)#application/x-www-form-urlencoded
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、application/x-www-form-urlencoded
に設定されます。 -
headers
Dict[str, str] (オプション)#HTTPヘッダーを設定できます。これらのヘッダーは、フェッチされたリクエストと、それによって開始されたリダイレクトに適用されます。
-
ignore_https_errors
bool (オプション)#ネットワークリクエストの送信時にHTTPSエラーを無視するかどうか。 デフォルトは
false
です。 -
max_redirects
int (オプション)バージョン v1.26 で追加#自動的に追跡されるリクエストリダイレクトの最大数。 この数を超えるとエラーがスローされます。 デフォルトは
20
です。 リダイレクトを追跡しない場合は0
を渡します。 -
max_retries
int (オプション)バージョン v1.46 で追加#ネットワークエラーを再試行する最大回数。 現在、
ECONNRESET
エラーのみが再試行されます。 HTTPレスポンスコードに基づいて再試行しません。 制限を超えるとエラーがスローされます。 デフォルトは0
- 再試行なし。 -
multipart
Dict[str, str | float | bool | [ReadStream] | Dict] (オプション)#multipart/form-data
エンコーディングを使用してHTMLフォームとしてシリアライズされ、このリクエストボディとして送信されるオブジェクトを提供します。 このパラメーターが指定されている場合、content-type
ヘッダーは明示的に指定されていない限り、multipart/form-data
に設定されます。 ファイル値は、ファイル名、MIMEタイプ、およびその内容を含むファイルライクオブジェクトとして渡すことができます。 -
params
Dict[str, str | float | bool] | str (オプション)#URLとともに送信されるクエリパラメーター。
-
リクエストタイムアウト(ミリ秒単位)。 デフォルトは
30000
(30秒)です。 タイムアウトを無効にするには0
を渡します。
戻り値
storage_state
バージョン v1.16 で追加このリクエストコンテキストのストレージ状態を返します。コンストラクターに渡された場合、現在のCookieとローカルストレージのスナップショットが含まれます。
使用例
api_request_context.storage_state()
api_request_context.storage_state(**kwargs)
引数
-
indexed_db
bool (オプション)追加バージョン: v1.51#ストレージ状態のスナップショットにIndexedDBを含める場合は
true
に設定します。 -
path
Union[str, pathlib.Path] (オプション)#ストレージ状態を保存するファイルパス。 path が相対パスの場合、現在の作業ディレクトリからの相対パスとして解決されます。パスが指定されていない場合でも、ストレージ状態は返されますが、ディスクには保存されません。
戻り値