RubyMine 2020.3 ヘルプ

応答処理の例

このトピックでは、いくつかの HTTP レスポンス処理の例を調べます。例を試してみるには、auth-requests および test-responses 要求のコレクション(英語)を調べましょう。

応答ヘッダー、本文、コンテンツタイプの確認

この例では、次のことを確認するためにいくつかのテストを作成します。

  • 要求は正常に実行されます。つまり、応答状況は 200 です。

  • ヘッダはレスポンスボディ内で受信されます。

  • レスポンスのコンテンツタイプはアプリケーション / JSON です。

テストを作成するには、クライアント(英語)オブジェクトの test メソッドを呼び出します。テスト内では、client オブジェクトの assert メソッドを呼び出して特定の条件をアサートし、応答(英語)オブジェクトのさまざまなプロパティを参照して検証できます。

### Check response status, headers, and content-type GET https://httpbin.org/get > {% client.test("Request executed successfully", function() { client.assert(response.status === 200, "Response status is not 200"); }); client.test("Headers option exists", function() { client.assert(response.body.hasOwnProperty("headers"), "Cannot find 'headers' option in response"); }); client.test("Response content-type is json", function() { var type = response.contentType.mimeType; client.assert(type === "application/json", "Expected 'application/json' but received '" + type + "'"); }); %}

環境変数の使用

この例では、受け取った応答から環境変数に値を取り込んで、それをその後の要求で使用できます。

最初の要求には応答ハンドラースクリプトが含まれています。これは、受信した応答本体からの認証トークンを client.global(英語)auth_token 変数に保存します。これを達成するために、client.global.set(VariableName, VariableValue) 構造を使います。

POST https://httpbin.org/post Content-Type: application/json { "token": "my-secret-token" } //Saving a variable > {% client.global.set("auth_token", response.body.json.token); %}

要求が実行された後、auth_token 変数は、client.global.get("auth_token") 構成を使用して、{{auth_token}} および応答ハンドラースクリプトとして後続の両方の要求からアクセスできます。

//Accessing a variable GET https://httpbin.org/headers Authorization: Bearer {{auth_token}}

応答ヘッダーから値を取得するには、headers(英語) オブジェクトの valueOf メソッドを使用します。同じ名前の複数のヘッダーが受信された場合(これはセットクッキーヘッダーの一般的なケースです)、代わりに valuesOf メソッドを使用してください。これはすべてのレスポンスヘッダ値の配列を返します。

POST https://httpbin.org/cookies //Saving a cookie from the first Set-Cookie header > {% client.global.set("my_cookie", response.headers.valuesOf("Set-Cookie")[0]); %}