我有一個Erlang的應用程序,這使得大量HTTP調用使用inets外部網站,使用下面處理二郎inets HTTP客戶端錯誤
case http:request(get, {Url, []}, [{autoredirect, false}], []) of
{ok, {{_, Code, _}, _, Body}}->
case Code of
200 ->
HandlerFn(Body);
_ ->
{error, io:format("~s returned HTTP ~p", [Broker, Code])}
end;
Response -> %% block to handle unexpected responses from inets
{error, io:format("~s returned ~p", [Broker, Response])}
end.
的代碼有一個明確的塊來處理什麼奇怪inets可能返回[響應]。儘管如此,我仍然可以看到inets錯誤報告轉儲到控制檯[下面的示例]。我在這裏做錯了什麼?我需要在別處配置某種類型的inets錯誤處理程序嗎?
謝謝。
-
=ERROR REPORT==== 24-Apr-2010::06:49:47 ===
** Generic server <0.6618.0> terminating
** Last message in was {connect_and_send,
{request,#Ref<0.0.0.139358>,<0.6613.0>,0,http,
{"**********",80},
"*****************************",
[],get,
{http_request_h,undefined,"keep-alive",
undefined,undefined,undefined,undefined,
undefined,undefined,undefined,undefined,
undefined,undefined,undefined,undefined,
undefined,undefined,"news.bbc.co.uk",
undefined,undefined,undefined,undefined,
undefined,undefined,undefined,undefined,
undefined,[],undefined,undefined,undefined,
undefined,"0",undefined,undefined,
undefined,undefined,undefined,undefined,[]},
{[],[]},
{http_options,"HTTP/1.1",infinity,false,[],
undefined,false,infinity},
"************************************",
[],none,[],1272088179114,undefined,undefined}}
** When Server state == {state,
{request,#Ref<0.0.0.139358>,<0.6613.0>,0,http,
{"******************",80},
"*****************************",
[],get,
{http_request_h,undefined,"keep-alive",
undefined,undefined,undefined,undefined,
undefined,undefined,undefined,undefined,
undefined,undefined,undefined,undefined,
undefined,undefined,"news.bbc.co.uk",
undefined,undefined,undefined,undefined,
undefined,undefined,undefined,undefined,
undefined,[],undefined,undefined,
undefined,undefined,"0",undefined,
undefined,undefined,undefined,undefined,
undefined,[]},
{[],[]},
{http_options,"HTTP/1.1",infinity,false,[],
undefined,false,infinity},
"****************************************",
[],none,[],1272088179114,undefined,undefined},
undefined,undefined,undefined,undefined,undefined,
{[],[]},
{[],[]},
undefined,[],nolimit,nolimit,
{options,
{undefined,[]},
0,2,5,120000,2,disabled,false,inet,default,
default,[]},
{timers,[],undefined},
httpc_manager,undefined}
** Reason for termination ==
** {error,{connect_failed,{#Ref<0.0.0.139358>,{error,nxdomain}}}}
=ERROR REPORT==== 24-Apr-2010::06:49:47 ===
HTTPC-MANAGER<httpc_manager> handler (<0.6618.0>, started) failed to connect and/or send request #Ref<0.0.0.139358>
Result: {error,{connect_failed,{#Ref<0.0.0.139358>,{error,nxdomain}}}}
嗯,這是一個間歇性的錯誤;所以這是遠程服務器的問題。問題是,我如何處理我的錯誤? – Justin 2010-04-24 08:19:25
我認爲他的問題更多的是關於如何處理inets進程崩潰的事實,而不是爲什麼它崩潰。 – 2010-04-25 01:10:24