2017-04-19 22 views
1

面臨的課題進入端點獲取而通空地圖{}到GET請求

下面的Spring MVC端點不取的話,而我調用API得到的迴應。

http://localhost:28080/restServices/apps/1762/users/USERNAME/?password=PASSWORD

但是當過我設置下面的數據它不工作可能任何機構幫助我這個問題。

http://localhost:28080/restServices/apps/1762/users/USERNAME/?password=PASSWORD&data={}

@RequestMapping(value = "/apps/{appId_}/users/{username_}", method = RequestMethod.GET) 
@ResponseBody 
@Transactional 
public UserResponseDTO getUserAndToken(@PathVariable Long appId_, @PathVariable String username_, @RequestParam("password") String password_, @RequestParam("data") String datas) throws Exception { 
//do stuff 
} 

編輯

這個問題,它的任何編輯工作到Tomcat版本7.0.63而另一個版本7.0.73, 8.0.x +不工作。

回答

0

的重大更新的這種行爲的影響。

快速修復,您可以降級到舊版本中的一個,我的tomcat降級與7.0.63

得到更多R & D Spring MVC在下面列出的請求中添加無效字符列表時,它拒絕請求。

control  = <US-ASCII coded characters 00-1F and 7F hexadecimal> 
    space  = <US-ASCII coded character 20 hexadecimal> 
    delims  = "<" | ">" | "#" | "%" | <"> 

的不明智的人物名單被允許的,但可能會導致問題:

排除的URI語法中不允許US-ASCII字符

unwise  = "{" | "}" | "|" | "\" | "^" | "[" | "]" | "`" 

下列字符查詢組件內保留,在URI/URL中具有特殊含義:

reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | "," 

For more information visit.

解決方案:

encodeURI("http://localhost:28080/restServices/apps/1762/users/USERNAME/?password=PASSWORD&data={}") 
> http://localhost:28080/restServices/apps/1762/users/USERNAME/?password=PASSWORD&data=%7B%7D 
0

你忘了在指定{} appId_ value = "/apps/users/{username_}"

修復:value = "/apps/{appId_}/users/{username_}"

~~~

你的方法接受@RequestParam("data") String datas 和你發送data={} 字符串應該被引用,因此修復是data=""

+0

已經成爲我添加的代碼,但在這裏錯誤地removed.But仍然沒有工作 –

+0

與固定「數據」串嘗試。 – sovas

+0

所以我需要設置類似wise',@RequestParam(「數據」)的字符串數據)'。我請根據你說的 @sovas但仍然沒有工作。 –