我试过lhttpc客户端并得到了奇怪的错误:
7> lhttpc:request("https://money.yandex.ru",head,[],infinity).
{ok,{{200,"OK"},
[{"Server","lighttpd/1.4.26"},
{"Date","Fri, 02 Sep 2011 20:29:02 GMT"},
{"Expires","Fri, 02 Sep 2011 20:29:02 GMT"},
{"Content-Type","text/html; charset=windows-1251"},
{"Cache-Control","max-age=0, proxy-revalidate"}],
<<>>}}
8> lhttpc:request("https://money.yandex.ru",get,[],infinity).
** exception exit: {{case_clause,{ok,<<"\r\n">>}},
[{lhttpc_client,read_trailers,4},
{lhttpc_client,read_chunked_body,4},
{lhttpc_client,handle_response_body,4},
{lhttpc_client,read_response,4},
{lhttpc_client,execute,9},
{lhttpc_client,request,9}]}
in function lhttpc:request/9
正如你所看到的,我首先尝试执行HEAD请求并且它没问题,然后我发出了GET请求并且失败了。有没有人遇到这个bug,也许有人知道如何修复它?
答案 0 :(得分:2)
我解决了这个问题。似乎这不是lhttpc库的错误,而是Erlang本身。
似乎有时候erlang:decode_packet
函数不应该返回http_eoh
。
我使用从他们的git存储库克隆的R14B04 Erlang,可能是一个原因。我没有时间深入挖掘它,所以我修补了lhttpc本身。