3 回答

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

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

TA貢獻(xiàn)1831條經(jīng)驗 獲得超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;
}
}
到達(dá)端點(diǎn)的 url
http://localhost:8080/api/v1/test?date=2019-08-19T00:00:00.000%2B00:00
結(jié)果
{"message":"success","date":1566172800000}
添加回答
舉報