問題タブ [javax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
140 参照

rest - Jersey と javax.rs - 別々のコンテンツ タイプを受け入れる

私の REST API では、以前はパス パラメーターからの入力を必要としなかった POST を取得しました。ただし、オプションのフォームパラメーターを受け入れることで拡張したいと考えています。@FormParam でこれを試してみましたが、(少なくとも) クライアントの 1 つがコンテンツ タイプ application/x-www-form-urlencoded を設定していないことがわかり、Jersey は次のエラーで失敗します。

@FormParam は、リクエスト エンティティのコンテンツ タイプが application/x-www-form-urlencoded でない場合に使用されます。

これを解決できますか?新しいクライアントがフォームで送信できるようにしたいのですが、古いクライアントが設定しているコンテンツ タイプは何でも受け入れます。

悪い解決策は、クエリ パラメータを使用することです。

編集:別の@Consumesで新しいリソースを追加しようとしました

私のテストでは、実際にフォームを送信すると機能します。セットのコンテンツ タイプを送信しないと、上記と同じエラーで失敗します。したがって、 thisWorks(..) リソースを選択しているようです。

Edit2:回避策を見つけました

これを唯一のリソースとして使用すると、コンテンツ タイプが設定されていない場合は formParam が null になり、フォームが設​​定されている場合はフォーム パラメータが含まれます。ドキュメントが台無しになる可能性がありますが、少なくとも機能します。