2017-04-04 26 views
8

私がリクエストをすると、返されたXMLが返されます。しかし、私が必要とするのはJSONです。このドキュメントでは、JSONを取得するためには、Accept: application/json HTTPヘッダーを使用しています。REST API - "Accept:application/json" HTTPヘッダーを使用

しかし、神の名前では、Accept: application/jsonを入れるHTTPヘッダーがあります。あなたが右の推測

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 
+2

どのようにリクエストを送信していますか? –

+0

これは理解に役立ちます:http://stackoverflow.com/documentation/rest/1664/getting-started-with-rest/20145/rest-over-http – sp00m

答えて

17

、HTTPヘッダはURLの一部ではありません。

私の推測では、どのように見えるURL要求、内側にあると仮定されていないです。

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

最も一般的なシナリオは、サーバーがサードパーティのREST APIを使用していることです。サーバー側のコード最終的に適切なGET(/ PUT/POST/DELETE)要求が(必要なときにあなたのケースのように、)の設定特定のエンドポイント(URL)を指しているいくつかのヘッダとを偽造し、そうするには

(たぶん)いくつかのデータを送信します(通常はPOSTリクエストで発生します)。

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

テスト REST 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ディレクティブは、ヘッダとその値を設定します。

関連する問題