我有使用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