【发布时间】:2018-02-27 10:53:16
【问题描述】:
我的 http-headers 有问题。 我需要发送一个带有空正文和标题“Content-Length:0”的后请求。但这似乎是不可能的,因为我得到了这个例外:
--org.apache.http.ProtocolException: Content-Length 标头已经存在--
但是当我不包含标头时,请求中没有 Content-Length 标头,因此我得到 400:错误请求。 我也用 Python 构建了它,它工作得很好,但我不能让它在 java 中工作。你能帮帮我吗?
这是我的代码:
HttpClient client = HttpClientBuilder.create().build();
HttpPost httpPost = new HttpPost(url);
httpPost.addHeader(header..);
httpPost.addHeader(another header);
httpPost.addHeader("Content-Type","application/xml");
httpPost.addHeader("Content-Length","0");
httpPost.addHeader(another header);
HttpResponse response = client.execute(httpPost);
System.out.println(response.getStatusLine().getStatusCode());
编辑:
用@Beno Arakelyan 的回答解决了这个问题。
【问题讨论】:
-
FWIW,如果您不发送请求正文,则发送 Content-Type 没有任何意义。
-
您的评论没有帮助@Reschke。我们可以讨论这篇文章(它执行一个不需要主体的动作),但这不是我的 api。我只需要使用这个 api,我不能改变它。如果可以的话,我会改变的不仅仅是这个:D
-
您确定需要发送 Content-Length 吗?