Java Http - Post header 内​​容长度

标签 java http

我的 http header 有问题。 我需要发送一个带有空正文和标题“Content-Length:0”的后请求。但这似乎不可能,因为我得到了这个异常:

--org.apache.http.ProtocolException:内容长度 header 已存在--

但是当我不包含 header 时,请求中没有 Content-Length header ,因此我得到 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 的答案解决了问题。

最佳答案

我尝试使用 http-request 发送 Content-Length它建立在 apache http 客户端之上。效果很好。示例:

private static final HttpRequest<?> HTTP_REQUEST =
      HttpRequestBuilder.createGet(YOUR_URI)
        .addDefaultHeader(HttpHeaders.CONTENT_LENGTH, "0")
        .build();

public void test(){
  System.out.println(HTTP_REQUEST.execute().getStatisCode()); // is 200
}

关于Java Http - Post header 内​​容长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49006925/

相关文章:

java - RMI 服务器 java.security.AccessControlException : access denied

java - 查找字符串中存在的字符 :java

java - 如何以任意顺序将输入分配给程序?

REST API 状态代码分页

c# - 简单的 C# Http/TCP 服务器

php - 我应该使用什么 HTTP 重定向状态来链接异地?

java - 使用hashmap显示JTextField中的数据并更新

java - java Swing 中没有出现滚动条

angularjs - 如何在 $http.delete 中发送和排列

.htaccess - 如何将我的博客 http ://subdomain. example.com 重定向到 https://