3 回答

TA貢獻2011條經驗 獲得超2個贊
url參數必須編碼
調用者有責任這樣做。如果調用者使用 Java,他可以簡單地將值設置為:
URLEncoder.encode("2019-08-19?000:00:00.000+0000",?"UTF-8");
這將解決
2019-08-19%2000:00:00.000%2B0000

TA貢獻2012條經驗 獲得超12個贊
這是已知行為,您可以發送%2B
而不是+
http://localhost:8989/api/v1/test?date=2019-08-19%2000:00:00.000%2B0000
執行此翻譯的嵌入式 tomcat 服務器和 spring 甚至不參與此操作。如類代碼中所示,沒有配置可以更改此行為。所以你必須忍受它

TA貢獻1831條經驗 獲得超4個贊
這是我筆記本電腦上的快速測試。我的控制器
@GetMapping(value = "/api/{version}/test", produces = "application/json")
public SuccessResult getFreeList(@PathVariable String version,
@RequestParam("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) Date date) {
System.out.println(date);
SuccessResult result = new SuccessResult();
result.setDate(date);
return result;
}
我的輸出對象
public class SuccessResult {
String message = "success";
Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
到達端點的 url
http://localhost:8080/api/v1/test?date=2019-08-19T00:00:00.000%2B00:00
結果
{"message":"success","date":1566172800000}
添加回答
舉報