我有使用PHP发送的WebDAV propfind请求。 HTTP请求如下:响应XML包含“2000”和“20a0”字符
PROPFIND /path/to/whatever HTTP/1.1
User-Agent: My Client
Accept-Encoding: deflate
Depth: 1
Host: example.com
Content-Type: text/xml;charset=UTF-8
Authorization: Basic bLahDeBlah=
Content-Length: 82
Connection: close
<?xml version='1.0' encoding='utf-8'?><propfind xmlns='DAV:'><allprop/></propfind>
它正常工作时的响应XML小于约1.5 MB。当响应较大时,XML包含字符\r\n2000\r\n
和偶尔\r\n20a0\r\n
。
我使用这个PHP代码检索响应:
<?php
$output = "";
while (!feof($this->socket)) {
$output .= fgets($this->socket, 1024);
}
我可以从响应剥离不需要的字符解决这个问题 - 但我想,以防止这一点。任何想法可能导致这种情况?
更新:响应标题包含Transfer-Encoding: chunked
。我们的PHP版本是Windows,我相信没有DLL可以使用http_chunked_decode()
。
响应数据可能是由于传输编码被设置为由远程服务器分块。 – 2014-09-22 10:43:25
是的,那是可能的。什么是响应标题? – 2014-09-22 10:45:35
响应头有“Transfer-Encoding:chunked” – 2014-09-22 11:14:02