在Jersey客户端请求中未设置Content-Length-Header

时间:2011-04-12 18:29:20

标签: java jersey

我正在使用Jersey客户端访问网络服务,如下所示:
response = r.accept(MediaType.TEXT_PLAIN_TYPE).header("content-length", 0).post(String.class);
其中r是WebResource

但是,Webservice返回411 - 缺少Content-Length。

使用tcpdump,我发现我能够指定自定义标题,即.header("myheader", 0)正常工作。

因此,由于某些原因,球衣似乎正在删除内容长度标题。

任何人都有任何想法?

2 个答案:

答案 0 :(得分:7)

我实际上要求对Restful webservice使用空的POST请求。

如果指定空字符串作为post方法的第二个参数,Jersey将创建值为0的Content-Length标头。

e.g。 response = r.accept(MediaType.TEXT_PLAIN_TYPE).post(String.class, "");

答案 1 :(得分:3)

通话的内容长度由Jersey Client计算,无法设置。 Paul Sandoz--该项目的知名提交者 - 回答了a similar question

  

问:我认为“内容长度”   标题未自动设置。

     

A:泽西运动时[...]   确定内容的长度。

如果您需要进一步的信息,请解释您将字符串发布到空白大小的资源时所期望的结果。