当前位置: 首页 > 面试题库 >

Content-Length标头已存在

时恩
2023-03-14
问题内容

我正在使用Android中包含的Apache HttpClient(4.1)执行HttpPut。我已经验证我只有1个content-
length标题。但是,每次发送请求时,都会收到有关已指定的Content-Length标头的协议异常。

HttpClient client = new DefaultHttpClient();
putMethod = new HttpPut(url + encodedFileName);
putMethod.addHeader(..)  //<-once for each header
putMethod.setEntity(new ByteArrayEntity(data));
client.execute(putMethod);  //throws Exception

引起原因:org.apache.http.ProtocolException:Content-
Length标头已存在于org.apache.http.protocol.BasicHttpProcessor.process(BasicHttpProcessor)上的org.apache.http.protocol.RequestContent.process(RequestContent.java:70)
.java:290)

有任何想法吗?


问题答案:

我自己没有使用过HttpClient,但我怀疑问题是putMethod.setEntity(...)隐式提供了内容长度,并且您也通过putMethod.addHeader(...)调用之一来显式设置它。



 类似资料:
  • 我正在使用Spring Boot集成到第三方,它可以提供gzipped响应,我想记录压缩响应体的大小与解压缩响应体的大小,这样我们就可以审计帐单等。 我正在使用RestTemplate.Exchange发出GET请求,并且响应正确返回,但是我无法检索响应中的内容长度头。 我知道第三方正在将其发回,因为当我使用curl发出相同的请求时,我可以看到它: 这是我的Java代码,它发出请求并记录长度: 对

  • Content-Length实体报头指示该实体主体的大小,以字节为单位的十进制数,发送到接收方。 Header type Entity header Forbidden header name yes 语法 Content-Length: <length> 指令 <length> 十进制数字的长度。 规范 Specification Title RFC 7230, section 3.3.2: C

  • 问题内容: 我正在尝试实现简单的xhr抽象,并且在尝试设置POST标头时收到此警告。我认为这可能与在单独的js文件中设置标头有关,因为当我在.html文件的标记中设置标头时,效果很好。POST请求工作正常,但是我收到此警告,并且很好奇为什么。我同时针对标头和标头收到此警告,但仅在WebKit浏览器(Chrome 5 beta和Safari 4)中得到此警告。在Firefox中,我没有收到任何警告,

  • 问题内容: 我的JavaScript应用程序需要确定资源的长度, 然后 才能使用Ajax下载资源。通常这不是问题,您只需发出HEAD请求并提取即可。 但是,资源存储在与客户端不同的服务器上。(我控制的服务器)。因此,我正在使用CORS发出跨域Ajax请求,并已设置服务器以使用自定义标头响应HEAD请求和GET / POST请求的预检请求。 总的来说,这很有效,但是在使用CORS时,我似乎找不到一种

  • 我正在使用ASP.NET WebApi创建一个RESTful API。我正在我的一个控制器中创建一个PUT方法,代码如下所示: 当我通过AJAX使用浏览器将其放到该位置时,它给出了以下例外情况: 标头名称使用不当。确保请求标头与HttpRequestMessage一起使用,响应标头与HttpReponseMessage一起使用,内容标头与HttpContent对象一起使用。 但是不是一个完全有效的

  • 如何使用.NET将Content-Length,Content-Type和Last-Modified添加到HttpResponseMessage标头。 我需要手动将所有这些值添加到响应中,添加这些字段后,我需要从服务器返回响应。我试着以空闲的方式添加这些字段 我得到了休耕的错误 “错误使用了标头名称。请确保请求标头与HttpRequestMessage一起使用,响应标头与HttpReponseMe