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

Jul*_*Arz 8 java jersey

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

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

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

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

有人有什么想法吗?

小智 7

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

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

例如 response = r.accept(MediaType.TEXT_PLAIN_TYPE).post(String.class, "");


yve*_*lem 4

调用的内容长度由 Jersey Client 计算,无法设置。\nPaul Sandoz \xe2\x80\x94 项目 \xe2\x80\x94 的知名提交者回答了类似的问题

\n
\n

问:我认为“Content-Length”\n标题不会自动设置。

\n

答: Jersey 运行时[...]\n确定内容的长度。

\n
\n

如果您需要更多信息,请解释您希望将字符串发布到空大小的资源中得到什么结果。

\n