Java Apache HTTP 错误:在块末尾预期接收 CRLF

使用 HTTP Apache 客户端将 XML 响应作为字符串读取时,我收到以下异常:


org.apache.http.MalformedChunkCodingException: CRLF expected at end of chunk

这是在我的代码中读取从 REST API 检索到的 XML:


{WebTarget target = this.client.target(new URI(loginUrl));

Response response = target.request(MediaType.APPLICATION_XML).post(Entity.entity(xmlString, MediaType.APPLICATION_XML));

logger.info("Response -> "+response);

String responseXML = response.readEntity(String.class);}

该响应由服务器以随机间隔触发。


HTTP Request 

POST http://{serverName}:{port}/auth/2.8/signin


HTTP Response

An Apache HTTP Response Pojo Object


慕容3067478
浏览 433回答 1
1回答

扬帆大鱼

请帮助识别并解决此问题。您的问题中没有足够的信息来做到这一点。客户端库抱怨其响应格式错误;即它违反了HTTP规范。它所讨论的规范的特定部分是第 4.1 节 - 分块传输编码一种可能的解释是您尝试使用的 Web 服务器实施不正确。如果您使用的服务器是一些被误导的人试图使用套接字从头开始实现的服务器,而不是使用现有的 Web 容器或 http 协议库的明智方法,则可能会发生这种情况。第二种可能的解释是,有什么东西干扰了传输中的 TCP/HTTP 数据。这要如何调查呢?好吧,我建议如下:阅读 HTTP 规范的相关部分,以便了解要查找的内容。使用 Wireshark 等数据包监控工具来捕获其中一种故障的原始流量。仔细检查捕获的数据包以发现丢失的 CRLF找出数据包来自何处,然后返回源以查看问题产生的位置。另外,请查看其他一些“块末尾预期 CRLF”的问答,寻找与您的案例相关的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java