REST APIを使用してSpring MVCアプリケーションを開発します。このリクエストのパラメータを持つSpring MVC - 特定のURLパラメータを持つエラーコード406
:私はこの取得要求作るとき
@RequestMapping(value="/roomId/{roomId}",produces = "application/json")
public List<DayStatisticDto> findBySiteAndRoom(@PathVariable("roomId") String roomId, @RequestParam("timestamp") String timestamp, @RequestParam("pageSize") Integer pageSize) throws ParseException {
List<DayStatisticDto> dayStatisticDtos = dayStatisticService.latestDailyStatisticsForRoom(getCurrentUserSiteCode(), roomId, pageSize, timestamp, false);
return dayStatisticDtos;
}
:
私は、コントローラ内でこのメソッドを持って
- を受け入れます:アプリケーション/ json
- 受け入れエンコード:GZIPは、BR、SDCHを収縮
- 受け入れ-言語:FR-FR、FR; Q = 0.8、EN-US; Q = 0.6、EN; Q = 0.4
- のCache-Control :キャッシュなし
- クッキー:_ga = GA1.1.486025197.1475764350; JSESSIONID = 6716A5824088BC0F46A6B74D5FB25A3E
- ホスト:localhostを:8080
- のUser-Agent:Mozillaの/ 5.0(Macintosh版。インテルのMac OS X 10_11_6)のAppleWebKit/537.36(KHTML、ヤモリなど)クローム/ 54.0.2840.71 Safariは/
537.36は私が応答として正しいJSONオブジェクトを取得します。
しかし、私はI1.A.122からI1.A.123に "roomId" パラメータを変更した場合:このリクエストのパラメータを持つ
:
- 受け入れます。アプリケーション/ json
- アクセプトエンコーディング:gzip、deflate、sdch、br
- Accept-Language:fr-FR、frキャッシュコントロール:ノーキャッシュ
- クッキー:_ga = GA1.1.486025197.1475764350; q = 0.8、en-US; q = 0.6、ja; q = 0.4; JSESSIONID = 6716A5824088BC0F46A6B74D5FB25A3E
- ホスト:localhostを:8080
- のUser-Agent:Mozillaの/ 5.0(Macintosh版、インテルのMac OS X 10_11_6)のAppleWebKit/537.36(KHTML、ヤモリなど)クローム/ 54.0.2840.71サファリ/ 537.36
私は、エラーコード406を受け取る - 許容できない
私が挙にどこでも要求のこの種を使用して、私はこの種の問題を持っていませんでした。パラメータ "roomId"は依然として通常の整数値です。 Spring Mvcでどのように問題を発生させることができますか?ヘッダーと実行コードはまったく同じです。
"findBySiteAndRoom"メソッドの最初の行にブレークポイントを置くと、最初のケースではポイントに到達します。しかし、2番目のケースでは、ブレークポイントに達する前に406エラーコードを返します。
ご協力いただきありがとうございます。
roomVariableではなくrequestparamでルームIDを渡すと、roomId I.1A.123で動作します:http:// localhost:8080/api/activities/room?roomId = I1.A.123&timestamp = 2016 -11-11T12:02:34.421 + 0100&pageSize = 1 roomIdの後に余分な単語を追加すると、Id I1.A.213:http:// localhost:8080/api/activities/room/I1.A.123/test?timestamp = 2016-11-11T12:02:34.421 + 0100&pageSize = 1 これをどのように説明できますか? Spring MVCのバグですか? –
roomId値の直後に "/"を追加すると、http:// localhost:8080/api/activities/roomId /I1.A.123/?timestamp = 2016-11-11T12:02:34.421 + 0100&pageSize = 10 –
@RequestMapping(value = "/ roomId/{roomId}"、生成する= "application/json") または @RequestMapping(value = "/ room/{roomId}"、 "application/json")? (roomId vs room) – kuhajeyan