From 262e68f7d24cd7b9335d190ebcf5d42c7dfb2a66 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Tue, 30 Aug 2022 10:16:02 +0800 Subject: [PATCH] fix: return error when receive HTTP code other than 2xx --- .../src/emqx_connector_http.erl | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/apps/emqx_connector/src/emqx_connector_http.erl b/apps/emqx_connector/src/emqx_connector_http.erl index 5658b385d..f63873fe3 100644 --- a/apps/emqx_connector/src/emqx_connector_http.erl +++ b/apps/emqx_connector/src/emqx_connector_http.erl @@ -275,7 +275,7 @@ on_query( ), NRequest = formalize_request(Method, BasePath, Request), case - Result = ehttpc:request( + ehttpc:request( case KeyOrNum of undefined -> PoolName; _ -> {PoolName, KeyOrNum} @@ -286,33 +286,35 @@ on_query( Retry ) of - {error, Reason} -> + {error, Reason} = Result -> ?SLOG(error, #{ msg => "http_connector_do_request_failed", request => NRequest, reason => Reason, connector => InstId - }); - {ok, StatusCode, _} when StatusCode >= 200 andalso StatusCode < 300 -> - ok; - {ok, StatusCode, _, _} when StatusCode >= 200 andalso StatusCode < 300 -> - ok; - {ok, StatusCode, _} -> + }), + Result; + {ok, StatusCode, _} = Result when StatusCode >= 200 andalso StatusCode < 300 -> + Result; + {ok, StatusCode, _, _} = Result when StatusCode >= 200 andalso StatusCode < 300 -> + Result; + {ok, StatusCode, Headers} -> ?SLOG(error, #{ msg => "http connector do request, received error response", request => NRequest, connector => InstId, status_code => StatusCode - }); - {ok, StatusCode, _, _} -> + }), + {error, #{status_code => StatusCode, headers => Headers}}; + {ok, StatusCode, Headers, Body} -> ?SLOG(error, #{ msg => "http connector do request, received error response", request => NRequest, connector => InstId, status_code => StatusCode - }) - end, - Result. + }), + {error, #{status_code => StatusCode, headers => Headers, body => Body}} + end. on_query_async(InstId, {send_message, Msg}, ReplyFunAndArgs, State) -> case maps:get(request, State, undefined) of