Ошибка клиента lhttpc - PullRequest
       10

Ошибка клиента lhttpc

3 голосов
/ 03 сентября 2011

Я попробовал 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, и он не прошел. Кто-нибудь сталкивался с этой ошибкой и, может быть, кто-то знает, как ее исправить?

1 Ответ

2 голосов
/ 04 сентября 2011

Я решил эту проблему.Кажется, что это не ошибка библиотеки lhttpc, а сама Erlang.

Кажется, что иногда функция erlang:decode_packet не возвращает http_eoh, когда должна.

Я использую R14B04 Erlang, клонированный из их репозитория git, возможно, в этом была причина.У меня нет времени копать глубже, поэтому я пропатчил сам lhttpc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...