lhttpc客户端错误

时间:2011-09-02 21:20:10

标签: erlang

我试过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,也许有人知道如何修复它?

1 个答案:

答案 0 :(得分:2)

我解决了这个问题。似乎这不是lhttpc库的错误,而是Erlang本身。

似乎有时候erlang:decode_packet函数不应该返回http_eoh

我使用从他们的git存储库克隆的R14B04 Erlang,可能是一个原因。我没有时间深入挖掘它,所以我修补了lhttpc本身。