如何解决未在Jersey客户请求中设置Content-Length-Header
|| 我正在使用Jersey客户端访问Web服务,如下所示:response =
r.accept(MediaType.TEXT_PLAIN_TYPE).header(\"content-length\",0).post(String.class);
其中r是WebResource
但是,Web服务返回411-缺少内容长度。
使用tcpdump,我发现我可以指定自定义标头,即.header(\"myheader\",0)
可以正常工作。
因此,出于某些原因,球衣似乎正在删除content-length标头。
有人有什么想法吗?
解决方法
呼叫的内容长度是由Jersey Client计算的,无法设置。
该项目的著名提交人Paul Sandoz回答了类似的问题:
问:我认为“内容长度”
标头未自动设置。
答:Jersey运行时[...]
确定内容的长度。
如果您需要更多信息,请说明将字符串发布到具有空大小的资源中期望得到什么结果。
,我实际上有一个需求,要求为Restful Web服务使用空的POST请求。
如果您将空字符串指定为post方法的第二个参数,Jersey将创建值为0的Content-Length标头。
例如
response = r.accept(MediaType.TEXT_PLAIN_TYPE).post(String.class,\"\");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。