我正在尝试使用Jersey构建一个Java服务器,它接受带有二进制数据的POST请求。
以下是它应接受的示例请求:
curl -XPOST --data-binary @/path/to/some/file "localhost:<port>/myServer/processMyData"
我实施了一些目前无效的内容:
@Path("/myServer")
class MyServer {
@POST
@Path("/processMyData")
@Consumes(MediaType.APPLICATION_OCTET_STREAM)
String processMyData(byte[] payload) {
return "Sanity check string";
}
}
当我第一次运行curl
命令(见上文)时,我收到错误:
curl: (56) Recv failure: Connection reset by peer
然后,当我再次调用时,curl不会打印任何内容,并以状态0退出,而服务器会忽略所有内容。
我做错了什么?
注意:当我从--data-binary @/path/to/some/file
命令中删除curl
子句时,服务器上会接受该请求。我怎样才能接受泽西岛的二进制数据?
答案 0 :(得分:0)
回答自己...
这很简单,删除@Consumes(MediaType.APPLICATION_OCTET_STREAM)
解决了问题