2012-01-27 56 views
1

捲曲矮胖解析錯誤

我不能爲我的生活中找到什麼捲曲「問題3」是指「在矮胖解析器接收問題3」。我確定它與我從應用服務器發出的大塊的捲曲格式有關,但我無法弄清楚這個塊有什麼問題,因爲我不知道「問題3」是什麼。

任何想法?

+0

如果您需要幫助,更多細節將是一個好主意。 – flesk 2012-01-27 13:48:25

回答

1

您看到的編號是來自libcurl源代碼中lib/http_chunks.h的CHUNKcode枚舉中的CHUNKE_BAD_CHUNK。給出一個快速的樣子,它似乎主要用於分塊數據中缺少CR或LF的情況。

我建議您調查原始HTTP內容流,以查看分塊格式的問題。 RFC2616 section 3.6.1文件。

+0

我最終通過閱讀關於分塊編碼(http://en.wikipedia.org/wiki/Chunked_transfer_encoding)的維基百科文章,一些試驗和錯誤以及Wireshark來追蹤它。問題原來是因爲我使用了字符串的長度,但實際寫入的響應緩衝區大於原始字符串,因此它包含了幾個八位字節的空值,導致我的計數和實際八位字節不同。 – 2012-01-31 01:17:06

0

所以,我用CGI程序來解決這個問題。

長話短說,CGI腳本使用Python,以及使用該字符串的長度的打印塊頭部,然後使用發送到客戶端是:

print data, 

此附加的空間,從而使數據的一個字節比塊標題長。

stdout.write(data) 

數據的hexdump都出了CGI腳本的是,最後告訴我發生了什麼事的工具:我改變該行固定這一點。