fix: return error when receive HTTP code other than 2xx

This commit is contained in:
Shawn 2022-08-30 10:16:02 +08:00
parent b5ad5233a1
commit 262e68f7d2
1 changed files with 15 additions and 13 deletions

View File

@ -275,7 +275,7 @@ on_query(
), ),
NRequest = formalize_request(Method, BasePath, Request), NRequest = formalize_request(Method, BasePath, Request),
case case
Result = ehttpc:request( ehttpc:request(
case KeyOrNum of case KeyOrNum of
undefined -> PoolName; undefined -> PoolName;
_ -> {PoolName, KeyOrNum} _ -> {PoolName, KeyOrNum}
@ -286,33 +286,35 @@ on_query(
Retry Retry
) )
of of
{error, Reason} -> {error, Reason} = Result ->
?SLOG(error, #{ ?SLOG(error, #{
msg => "http_connector_do_request_failed", msg => "http_connector_do_request_failed",
request => NRequest, request => NRequest,
reason => Reason, reason => Reason,
connector => InstId connector => InstId
}); }),
{ok, StatusCode, _} when StatusCode >= 200 andalso StatusCode < 300 -> Result;
ok; {ok, StatusCode, _} = Result when StatusCode >= 200 andalso StatusCode < 300 ->
{ok, StatusCode, _, _} when StatusCode >= 200 andalso StatusCode < 300 -> Result;
ok; {ok, StatusCode, _, _} = Result when StatusCode >= 200 andalso StatusCode < 300 ->
{ok, StatusCode, _} -> Result;
{ok, StatusCode, Headers} ->
?SLOG(error, #{ ?SLOG(error, #{
msg => "http connector do request, received error response", msg => "http connector do request, received error response",
request => NRequest, request => NRequest,
connector => InstId, connector => InstId,
status_code => StatusCode status_code => StatusCode
}); }),
{ok, StatusCode, _, _} -> {error, #{status_code => StatusCode, headers => Headers}};
{ok, StatusCode, Headers, Body} ->
?SLOG(error, #{ ?SLOG(error, #{
msg => "http connector do request, received error response", msg => "http connector do request, received error response",
request => NRequest, request => NRequest,
connector => InstId, connector => InstId,
status_code => StatusCode status_code => StatusCode
}) }),
end, {error, #{status_code => StatusCode, headers => Headers, body => Body}}
Result. end.
on_query_async(InstId, {send_message, Msg}, ReplyFunAndArgs, State) -> on_query_async(InstId, {send_message, Msg}, ReplyFunAndArgs, State) ->
case maps:get(request, State, undefined) of case maps:get(request, State, undefined) of