Java 列表<;字符串>;作为GET方法的输入
我有休息服务。GET方法的输入类型是Java 列表<;字符串>;作为GET方法的输入,java,string,list,jersey,Java,String,List,Jersey,我有休息服务。GET方法的输入类型是列表: 但我总是得到这样的回答: 无法从START\u对象标记中反序列化java.util.ArrayList的实例 或 无法反序列化java.util.ArrayList的实例,超出值\u字符串标记 是否可以将输入设置为列表?我的卷发请求不正确吗?看起来您: --数据二进制 (HTTP)此完全按照指定发布数据,无需任何额外处理 因为,我猜它没有检测到需要对数据进行URL编码: -十、 --请求 (HTTP)指定与HTTP服务器通信时要使用的自定义请求方法。
列表
:
但我总是得到这样的回答:
无法从START\u对象标记中反序列化java.util.ArrayList的实例
或
无法反序列化java.util.ArrayList的实例,超出值\u字符串标记
是否可以将输入设置为列表
?我的卷发请求不正确吗?看起来您:
--数据二进制<数据>
(HTTP)此完全按照指定发布数据,无需任何额外处理
因为,我猜它没有检测到需要对数据进行URL编码:
-十、 --请求<命令>
(HTTP)指定与HTTP服务器通信时要使用的自定义请求方法。将使用指定的请求,而不是使用其他方法(默认为GET)。有关详细信息和解释,请阅读HTTP 1.1规范。常见的附加HTTP请求包括PUT和DELETE,但WebDAV等相关技术提供了PROPFIND、COPY、MOVE等功能
因此,请尝试以下方法:
-G、 --得到
使用此选项时,将使使用-d、-data或-data二进制指定的所有数据在HTTP GET请求中使用,而不是在其他情况下使用的POST请求。数据将附加到带有“?”分隔符的URL
看起来你是:
--数据二进制<数据>
(HTTP)此完全按照指定发布数据,无需任何额外处理
因为,我猜它没有检测到需要对数据进行URL编码:
-十、 --请求<命令>
(HTTP)指定与HTTP服务器通信时要使用的自定义请求方法。将使用指定的请求,而不是使用其他方法(默认为GET)。有关详细信息和解释,请阅读HTTP 1.1规范。常见的附加HTTP请求包括PUT和DELETE,但WebDAV等相关技术提供了PROPFIND、COPY、MOVE等功能
因此,请尝试以下方法:
-G、 --得到
使用此选项时,将使使用-d、-data或-data二进制指定的所有数据在HTTP GET请求中使用,而不是在其他情况下使用的POST请求。数据将附加到带有“?”分隔符的URL
我找到了解决办法:)
方法签名应该是
@GET
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public List<myObject> getData(@QueryParam("myParamName") List<String> IDs) {
....
}
有效:)我找到了解决方案:)
方法签名应该是
@GET
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public List<myObject> getData(@QueryParam("myParamName") List<String> IDs) {
....
}
它可以工作:)不,我不想工作。With--data二进制方法参数始终为空。。。。)谢谢你,你帮我找到了bug@VictorMezrin它是空的,因为您正在发出POST请求,并且该方法需要GET,因此Jersey忽略了POST数据。不,curl不想工作。With--data二进制方法param始终为空((谢谢你-你帮我找到了bug@VictorMezrin它是空的,因为您正在发出POST请求,并且方法期望GET,所以Jersey忽略了POST数据。
@GET
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public List<myObject> getData(@QueryParam("myParamName") List<String> IDs) {
....
}
curl -X GET -H "Content-Type: application/json" http://localhost:8080/myModule/rs/getData?myParamName={dfsf,ddsfdss,sdfsf} -v