2014-04-30 86 views
4

意想不到的TCP數據檢索我用下面的代碼的URL:二郎錯誤收到#Port

geturl(Url)-> 
{ok, RequestId}=httpc:request(get,{Url,[{"User-Agent", "Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.10"}]}, [],[{sync, false}]), 
    M = receive 
     {http, {RequestId, {_HttpOk, _ResponseHeaders, _Body}}} -> ok 
     after 20000 -> 
     not_ok 
     end. 
io:format("httprequest to ~p: ~p~n",[UrlHTTP,M]). 

有時候,我看到下面的錯誤輸出:

httprequest to "http://www.afbudsrejser.dk": ok 
=ERROR REPORT==== 30-Apr-2014::16:53:49 === 
Received unexpected tcp data on #Port<0.4432> 
    Data:  <<"\" type=\"text/javascript\"></script>\r\n\t</body>\r\n</html>\r\n\n">> 
    MFA:  undefined 
    Request: undefined 
    Session: {session,{{"www.afbudsrejser.dk",80},<0.4392.0>}, 
         false,http,#Port<0.4432>,ip_comm,1,pipeline,true} 
    Status:  pipeline 
    StatusLine: undefined 
    Profile: httpc_manager 

二郎錯誤收到意想不到的TCP數據#Port

此錯誤消息的原因是什麼?

+0

在您看到此消息的情況下,「M」的值是什麼? – evnu

+0

請編輯您的問題並添加此內容(這很難作爲評論閱讀)。 「Body」的內容是你期望的內容嗎?還是有數據丟失?另外,你可能想用wireshark檢查請求。 – evnu

+0

我將錯誤添加到問題 – user3572870

回答

1

您連接的HTTP服務器行爲不當。它聲明一個Content-Length標題比它實際發送的響應短。

這意味着服務器發送的最後幾個字節(包括字符串type="text/javascript"></script>)由httpc不符合HTTP規範。 httpcprints the warning message當您收到不屬於有效HTTP響應的意外字節時,您會看到它。

如果您無法修復服務器,則可以忽略此警告。您也可以查看relaxed httpc option,這可能會或可能不會解決此問題。