私はSpring MVCアプリケーションで作業しており、私が制御できないクライアントを持っています。このクライアントはJSONデータをポストしていますが、application/x-www-form-urlencoded
ヘッダーを送信しています。 Springは当然このヘッダーを信頼してデータを受け取ろうとしますが、そのJSONのためにはできません。 Springが受け取ったヘッダーをオーバーライドした経験がありましたか、ヘッダーに関係なく、どんなタイプのデータが来ているのか正確に指定していましたか?Spring MVCオーバーライド受信コンテンツタイプ
2
A
答えて
2
あなたは2つのことができます。
- 変更
Content-Type: application/json
ヘッダ - を送信するクライアントは、スプリングコントローラとヘッダ
Content-Type
をチェックの上にあるサーブレットフィルタやSpringインターセプターを書きます。application/json
でなければ、application/json
に変更します。
0
なぜapplication/x-www-form-urlencoded
リクエストを処理するために別のコントローラを書かないのですか?リクエストが有効なJSONの場合、解析して適切なサービスに転送できます。
このようにして、今後、有効なJSONではない同じタイプのリクエストを受け取ったケースを処理することもできます。
@RequestMapping(value = "/handleURLEncoded", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public @ResponseBody Object handleURLEncoded(HttpEntity<String> httpEntity) {
String json = httpEntity.getBody();
//now you have your request as a String
//you can manipulate it in any way
if(isJSONValid(json)) {
JSONObject jsonObj = new JSONObject(json);
//forward request or call service directly from here
//...
}
//other cases where it's not a valid JSON
}
注this答えからコピーisJSONValid()
方法
関連する問題
- 1. Spring MVC 3返されるコンテンツタイプ:text/plain
- 2. オーバーライドYii2 Swiftmailerの受信者
- 3. バッチ受信(Spring AMPQ
- 4. asp.net mvcは.wmlでtext/htmlコンテンツタイプをオーバーライドし続けます
- 5. ResourceHttpRequestHandlerをオーバーライドします。Spring MVC
- 6. 新しいコンテンツタイプのイベント受信者ですか?
- 7. Spring WS無効なコンテンツタイプ
- 8. CXF WebClientがHTTPコンテンツタイプをオーバーライドします
- 9. Spring統合 - 受信者リストルータのタイムアウト
- 10. Spring統合DSL HTTP受信ゲートウェイ
- 11. Spring Cloud Stream - メッセージの一括受信
- 12. SpringのAuthenticationProcessingFilterオーバーライド
- 13. spring mvcアプリケーションからのバックグラウンドタスクの送信
- 14. 送信ボタンをSpring MVCのフォーム
- 15. 非送信アクション用のSpring MVCコントローラ
- 16. JQueryがSpring MVCコントローラにJSONを送信
- 17. Spring MVCでデフォルトのMethodArgumentResolversをデコレート/オーバーライドする
- 18. Spring Mvc、アノテーションによるbean定義のオーバーライド方法
- 19. SpringブートMVC要求マッピングが静的リソースをオーバーライド
- 20. Spring MVCアップロードファイル - コンテンツタイプはどのように決定されますか?
- 21. Spring MVCの3コンテンツタイプ「アプリケーション/ jsonのは、」クライアントからの作品ではなく、ユニットテスト
- 22. Spring MVCおよびジャックソンでサポートされていないコンテンツタイプ 'application/json'
- 23. Spring Web MVC 3.1のサウンドファイルのコンテンツタイプがUTF-8で飾られています
- 24. spring-mvcでレスポンスに複数のコンテンツタイプを有効にする方法は?
- 25. Spring Cloud Stream SubscribableChannelの受信メッセージを傍受する
- 26. spring-rabbitmqリスナーの受信メッセージの受信レートを設定するには
- 27. SpringインテグレーションDefaultSoapHeaderMapper - getStandardRequestHeaderNames - オーバーライド
- 28. Spring:親Beanをオーバーライド
- 29. mvcへのポストを受信する生産現場で302(リダイレクト)を受信
- 30. Spring統合:クライアントhttp受信ゲートウェイへの応答を送信
3 'HttpServletRequest'のタイプのパラメータを追加することによって、手動でペイロードを読む、または' Reader'、または 'InputStream'、または' @RequestBody文字列 '、または... – Andreas
ありがとう! '@RequestBody String'ルートは、私の使用例に最も適しているので、終わりました。 – rreichel