使用 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/signinHTTP ResponseAn Apache HTTP Response Pojo Object
1 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
请帮助识别并解决此问题。
您的问题中没有足够的信息来做到这一点。
客户端库抱怨其响应格式错误;即它违反了HTTP规范。它所讨论的规范的特定部分是第 4.1 节 - 分块传输编码
一种可能的解释是您尝试使用的 Web 服务器实施不正确。如果您使用的服务器是一些被误导的人试图使用套接字从头开始实现的服务器,而不是使用现有的 Web 容器或 http 协议库的明智方法,则可能会发生这种情况。
第二种可能的解释是,有什么东西干扰了传输中的 TCP/HTTP 数据。
这要如何调查呢?好吧,我建议如下:
阅读 HTTP 规范的相关部分,以便了解要查找的内容。
使用 Wireshark 等数据包监控工具来捕获其中一种故障的原始流量。
仔细检查捕获的数据包以发现丢失的 CRLF
找出数据包来自何处,然后返回源以查看问题产生的位置。
另外,请查看其他一些“块末尾预期 CRLF”的问答,寻找与您的案例相关的问题。
添加回答
举报
0/150
提交
取消