我有一个 Erlang 应用程序,它使用 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 可能返回 [Response]。尽管如此,我仍然得到看起来像 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}}}}