[解決済み] コンテンツタイプ 'application/x-www-form-urlencoded;charset=UTF-8' は @RequestBody MultiValueMap ではサポートされていません。
2022-06-22 15:11:10
質問
回答に基づく Springの@Controllerでx-www-form-urlencodedを使用した場合の問題に対して
以下の@Controllerメソッドを書きました。
@RequestMapping(value = "/{email}/authenticate", method = RequestMethod.POST
, produces = {"application/json", "application/xml"}
, consumes = {"application/x-www-form-urlencoded"}
)
public
@ResponseBody
Representation authenticate(@PathVariable("email") String anEmailAddress,
@RequestBody MultiValueMap paramMap)
throws Exception {
if(paramMap == null || paramMap.get("password") == null) {
throw new IllegalArgumentException("Password not provided");
}
}
へのリクエストは以下のようなエラーで失敗します。
{
"timestamp": 1447911866786,
"status": 415,
"error": "Unsupported Media Type",
"exception": "org.springframework.web.HttpMediaTypeNotSupportedException",
"message": "Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported",
"path": "/users/usermail%40gmail.com/authenticate"
}
[追記: 天竺はずっとフレンドリーでしたが、ここでの実用的な制限を考えると今は使えませんでした] 。
どのように解決するのですか?
この問題は application/x-www-form-urlencoded を使ったとき、SpringはこれをRequestBodyとして理解しないことです。ですから、もし私たちがこの を削除しなければなりません。 @RequestBody アノテーションを削除する必要があります。
では、以下を試してみてください。
@RequestMapping(value = "/{email}/authenticate", method = RequestMethod.POST,
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE,
produces = {MediaType.APPLICATION_ATOM_XML_VALUE, MediaType.APPLICATION_JSON_VALUE})
public @ResponseBody Representation authenticate(@PathVariable("email") String anEmailAddress, MultiValueMap paramMap) throws Exception {
if(paramMap == null && paramMap.get("password") == null) {
throw new IllegalArgumentException("Password not provided");
}
return null;
}
アノテーションを削除したことに注意してください。 リクエストボディ
回答 : Springでコンテンツタイプapplication/x-www-form-urlencodedのHttp Postリクエストが機能しない。
関連
-
[解決済み】Unit TestからApplicationContextを読み込むのに失敗しました。FileNotFound
-
[解決済み] Spring boot - マネージドタイプではありません。
-
SpringプロジェクトがファイルapplicationContext.xmlを解決できないエラー
-
Tomcat server_A 子コンテナの起動に失敗しました。
-
[解決済み] クラスパス上にSpring WebApplicationInitializerの型が検出されない
-
[解決済み】Spring MVCとSpring Bootの違い【終了しました
-
[解決済み】Springでは、オプションのパス変数を作ることができますか?
-
[解決済み】Spring MVCのApplicationContextとWebApplicationContextの違いは何ですか?
-
[解決済み] Spring RestTemplateのタイムアウト
-
[解決済み] Springでjar内のファイルが表示されない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】クラスパス上にSpring WebApplicationInitializerの型が検出されない
-
[解決済み] Spring Batchのステップスコープの仕組み
-
[解決済み] Spring Batchのステップスコープの仕組み
-
SpringプロジェクトがファイルapplicationContext.xmlを解決できないエラー
-
自動配線された依存関係のインジェクションに失敗する; 自動インジェクションに失敗する問題
-
ソースコード解析:SpringはどのようにIOCコンテナにBeanを登録するのですか?
-
レスポンスボディとレスポンスエンテイティ
-
[解決済み] postmanでサポートされていないメディアタイプ
-
[解決済み] Spring Expression Language (SpEL) と @Value: ドル vs. ハッシュ ($ vs. #)
-
[解決済み] Springでjar内のファイルが表示されない