泽西岛:从邮寄请求中获取二进制数据

时间:2017-06-05 14:09:49

标签: java jersey

我正在尝试使用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子句时,服务器上会接受该请求。我怎样才能接受泽西岛的二进制数据?

1 个答案:

答案 0 :(得分:0)

回答自己...

这很简单,删除@Consumes(MediaType.APPLICATION_OCTET_STREAM)解决了问题