2013-02-19 28 views
2

我在PHP中使用fsockopen()來做一些API請求。對於大多數的API工作正常,但是從http://geocoding.cloudmade.com/我得到以下(RAW)迴應:爲什麼HTTP響應主體在開始處包含「2fb」?

HTTP/1.1 200 OK 
Server: nginx/0.6.35 
cache-control: no-cache 
Content-Type: application/json; charset=utf-8 
Date: Tue, 19 Feb 2013 11:08:05 GMT 
pragma: no-cache 
Transfer-Encoding: chunked 
Connection: close 

2fb 
{"found": 1, "bounds": [[52.48732, 13.42553], ... 
0 

我的問題是,「2FB」中的第一行和「0」在身體的最後一行呢不告訴我任何事情。如果我通過Firefox發送相同的請求,主體不包含「2fb」或「0」。因此,我猜它有一些意義。但是什麼?

感謝提示!

+0

小提琴手說什麼?你有沒有考慮設置你的用戶代理?還要考慮設置您的Content-Type和Accept-Encoding。 – 2013-02-19 11:15:55

+0

提琴手是個好主意,謝謝!服務器也向瀏覽器發送「2fb」和「0」。然而,瀏覽器顯然知道如何處理它,只顯示內容(IE在文本編輯器中打開文件)而沒有這些行。 – BurninLeo 2013-02-19 11:22:00

回答

4

chunked transfer-coding,也由Transfer-Encoding: chunked響應報頭中指示:

的分塊編碼修改一個消息的主體中,以 傳遞它爲一系列塊,每個具有其自己的尺寸指示器, 後跟一個包含實體標題字段的可選預告片。此 允許動態生成的內容與收件人必需的信息一起傳送,以驗證其已收到完整郵件的 。

2fb,後面跟\r\n,表示後面塊(763字節)的大小。塊大小0表示最後一個塊。

+0

這是解決方案...非常感謝! – BurninLeo 2013-02-19 11:26:11

相關問題