1. ホーム
  2. json

[解決済み] REST API - "Accept: application/json" HTTP ヘッダーを使用する

2022-03-14 04:06:40

質問

リクエストをするとXMLで応答が返ってきますが、必要なのはJSONです。ドキュメントには、JSONを返すように記載されています。JSONを返すには Accept: application/json HTTPヘッダです。

を置くためのHTTPヘッダはどこにあるのでしょうか? Accept: application/json の中に入れてください。

私の推測では、それはURL-requestの中にあるべきでないと思われます、それは次のように見えます。

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

解決方法は?

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

そして、ブラウザにURLを入力すると、標準的なヘッダーを付けてリクエストが発行されます。いずれにせよ、REST Apisはブラウザのアドレスバーにエンドポイントを入力して消費されることを想定していません。

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

そのために、サーバーサイドのコード 偽造 指定されたエンドポイント(URL)を指す適切なGET(/PUT/POST/DELETE)リクエストで、(あなたのケースのように必要な場合)いくつかの ヘッダー そして最後に (おそらく) いくつかのデータを送信します (たとえば POST リクエストで通常発生するように)。

リクエストを偽造し、送信し、最後にレスポンスを取得するコードは、サーバーサイドの言語に依存します。

もし、あなたが テスト REST Api を使用することができます。 curl ツールをコマンドラインから実行します。

curl リクエストを行い、レスポンスを標準出力に出力します(特に指示がない限り)。

あなたの場合、テストリクエストはこのように発行されるでしょう。

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