web-dev-qa-db-ja.com

REST AP​​I-「Accept:application / json」HTTPヘッダーを使用します

要求を行うと、XMLで応答を受け取りますが、必要なのはJSONです。ドキュメントでは、JSONを返すために次のように記述されています。Accept: application/json HTTPヘッダーを使用します。

Accept: application/jsonを入れるHTTPヘッダーはどこにありますか?

私の推測では、URLリクエストの内部にあるとは想定されていません。

http://localhost:8080/otp/routers/default/plan?fromPlace=52.5895,13.2836&toPlace=52.5461,13.3588&date=2017/04/04&time=12:00:00
18
obrob

ご想像のとおり、HTTPヘッダーはURLの一部ではありません。

そして、ブラウザにURLを入力すると、リクエストは標準ヘッダーで発行されます。とにかくREST Apisは、ブラウザのアドレスバーにエンドポイントを入力することによって消費されることを意図していません。

最も一般的なシナリオは、サーバーがサードパーティREST Apiを消費することです。

これを行うには、サーバー側のコードを偽造所定のエンドポイント(URL)設定を指す適切なGET(/ PUT/POST/DELETE)要求(必要に応じて、あなたの場合)いくつかのヘッダーそして最後に(おそらく)いくつかのデータを送信します(通常POSTリクエストで発生します) )。

リクエストを偽造して送信し、最終的にレスポンスを返すコードは、サーバー側の言語によって異なります。

testREST Apiを使用する場合は、curlコマンドラインからのツール。

curlは要求を作成し、応答をstdoutに出力します(特に指示がない限り)。

あなたの場合、テストリクエストは次のように発行されます:

$curl -H "Accept: application/json" 'http://localhost:8080/otp/routers/default/plan?fromPlace=52.5895,13.2836&toPlace=52.5461,13.3588&date=2017/04/04&time=12:00:00'

Hまたは--headerディレクティブは、ヘッダーとその値を設定します。

34
Paolo

ヘッダーをテストする の便利なサイトを次に示します。ブラウザのヘッダーを表示し、cURLを使用して、送信したヘッダーを反映することができます。

たとえば、このようなコンテンツネゴシエーションを検証できます。

このAcceptヘッダーはプレーンテキストを優先するため、その形式で返します。

$ curl -H "Accept: application/json;q=0.9,text/plain" http://gethttp.info/Accept
application/json;q=0.9,text/plain

これはJSONを好むため、その形式で返されます:

$ curl -H "Accept: application/json,text/*;q=0.99" http://gethttp.info/Accept
{
   "Accept": "application/json,text/*;q=0.99"
}
0
Echelon