java中 queryparam_@PathParam 和 @QueryParam
今天調試一個上傳功能,客戶端手持機發送數據,在URL中附加一個參數,后臺用@PathParam接收,但是報錯,無法獲取這個參數。
url:http://192.168.1.3/web1_service/convert/vict_hj1000?unit=160106
代碼:
@Path("/vict_hj1000")
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
publicResponse?createVictHJ1000Detect(@FormDataParam("name0")?InputStream?uploadedInputStream,@PathParam("unit")?Long?unit)throwsJSONException?{@Path("/vict_hj1000")
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response createVictHJ1000Detect(@FormDataParam("name0") InputStream uploadedInputStream, @PathParam("unit") Long unit) throws JSONException {
也就是說,這個unit參數獲取不到,怎么回事呢?
網上查了一遍,找到了原因,是url中參數的寫法不對,導致后臺的@PathParam無法獲取,下面列出@PathParam和@QueryParam的區別:
1. @PathParam ,url中直接在斜杠后面添加參數值, ? ? ? ? ? ? ?例如:www.a.com/student/001;
2. @QueryParam ,url中在后面添加【鍵值對】形式的參數,例如:www.a.com/student?id=001?;
我的應用里面,url用的是鍵值對形式的參數,而后臺用的是@PathParam,不匹配,因此無法獲取。
解決辦法就是修改URL,取消鍵值對,在斜杠后直接加參數值,改成:http://192.168.1.3/web1_service/convert/vict_hj1000/160106
并且后臺修改@Path注解,改為:
@Path("/vict_hj1000/{unit}")@Path("/vict_hj1000/{unit}")問題解決!
原文轉載:?http://blog.csdn.NET/zhouyingge1104/article/details/51034970
總結
以上是生活随笔為你收集整理的java中 queryparam_@PathParam 和 @QueryParam的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中pack函数_java - J
- 下一篇: java获取eureka_Spring