JSON リクエストの HTTP 415 Unsupported Media Type エラーを解決する
JSON 本文を使用して REST リクエストを発行するときに、次のような問題が発生することは珍しくありません。 HTTP 415「サポートされていないメディア タイプ」エラー。このエラーは通常、サーバーが受信した JSON データを処理できないときに発生します。
具体的には、質問で提起された問題は、適切に定義された「Content-Type: application/json」を持つ POST リクエストによって特徴付けられます。 " ヘッダーはありますが、依然として「サポートされていないメディア タイプ」エラーが発生します。さまざまな JSON ライブラリを試しましたが、問題は解決しませんでした。
解決策: Charset 指定の省略
慎重に調査した結果、「charset=utf8」が含まれていることが判明しました。 「Content-Type」ヘッダーのパラメータがエラーの原因でした。リクエストヘッダーから「charset=utf8」を削除すると奇跡的にエラーが消えます。
改訂コード:
<code class="java">con.setRequestProperty("Content-Type", "application/json"); con.setRequestProperty("Accept", "application/json");</code>
技術説明:
「charset=utf8」パラメータを省略すると、サーバーが受信 JSON データのエンコーディングを自動的に検出できるようです。エンコードはアプリケーション層に対して透過的であり、基礎となる通信メカニズムによって処理される必要があるため、これは多くの場合推奨されるアプローチです。
結論:
特定のシナリオでは、これは次のとおりです。 JSON リクエストの HTTP 415 「サポートされていないメディア タイプ」エラーは、「Content-Type」ヘッダーから文字セットの指定を削除することで解決できます。この簡単な変更により、サーバーは受信 JSON データをシームレスに処理できるようになり、REST サービスの対話が成功します。
以上がJSON リクエストに対して 415 「サポートされていないメディア タイプ」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。