diff --git a/src/agHttpCli/agHttpCli.erl b/src/agHttpCli/agHttpCli.erl index 522de90..e948ccb 100644 --- a/src/agHttpCli/agHttpCli.erl +++ b/src/agHttpCli/agHttpCli.erl @@ -110,16 +110,19 @@ castAgency(PoolNameOrSocket, Method, Path, Headers, Body, Pid, IsSystem, Timeout end end. --spec receiveRequestRet(requestId(), reference()) -> term() | {error, term()}. +-spec receiveRequestRet(requestId(), reference()) -> {StatusCode :: non_neg_integer(), Body :: binary(), Headers :: binary()} | {error, term()}. receiveRequestRet(RequestId, MonitorRef) -> receive #miRequestRet{requestId = RequestId, reply = Reply} -> erlang:demonitor(MonitorRef), case Reply of - {ok, <<>>, _StatusCode, _Headers} -> - erlang:setelement(2, Reply, #{}); - {ok, Body, _StatusCode, _Headers} -> - erlang:setelement(2, Reply, jiffy:decode(Body, [return_maps, copy_strings])); + {_StatusCode, Body, _Headers} -> + case Body of + <<>> -> + erlang:setelement(2, Reply, #{}); + _ -> + erlang:setelement(2, Reply, jiffy:decode(Body, [return_maps, copy_strings])) + end; _ -> Reply end; diff --git a/src/agHttpCli/agSslAgencyIns.erl b/src/agHttpCli/agSslAgencyIns.erl index 40b4788..8554187 100644 --- a/src/agHttpCli/agSslAgencyIns.erl +++ b/src/agHttpCli/agSslAgencyIns.erl @@ -62,7 +62,7 @@ handleMsg({ssl, Socket, Data}, #cliState{isHeadMethod = IsHeadMethod, backlogNum = BacklogNum, curInfo = CurInfo, requestsIns = RequestsIns, requestsOuts = RequestsOuts, recvState = RecvState} = CliState) -> try agHttpProtocol:response(RecvState, Rn, RnRn, Data, IsHeadMethod) of {done, #recvState{statusCode = StatusCode, headers = Headers, body = Body}} -> - agAgencyUtils:agencyReply(CurInfo, {ok, Body, StatusCode, Headers}), + agAgencyUtils:agencyReply(CurInfo, {StatusCode, Body, Headers}), case RequestsOuts of [] -> case RequestsIns of @@ -230,7 +230,7 @@ overReceiveSslData(#srvState{poolName = PoolName, serverName = ServerName, rn = {ssl, Socket, Data} -> try agHttpProtocol:response(RecvState, Rn, RnRn, Data, IsHeadMethod) of {done, #recvState{statusCode = StatusCode, headers = Headers, body = Body}} -> - agAgencyUtils:agencyReply(CurInfo, {ok, Body, StatusCode, Headers}), + agAgencyUtils:agencyReply(CurInfo, {StatusCode, Body, Headers}), case RequestsOuts of [] -> case RequestsIns of diff --git a/src/agHttpCli/agTcpAgencyIns.erl b/src/agHttpCli/agTcpAgencyIns.erl index 6307683..3e412a1 100644 --- a/src/agHttpCli/agTcpAgencyIns.erl +++ b/src/agHttpCli/agTcpAgencyIns.erl @@ -62,7 +62,7 @@ handleMsg({tcp, Socket, Data}, #cliState{isHeadMethod = IsHeadMethod, backlogNum = BacklogNum, curInfo = CurInfo, requestsIns = RequestsIns, requestsOuts = RequestsOuts, recvState = RecvState} = CliState) -> try agHttpProtocol:response(RecvState, Rn, RnRn, Data, IsHeadMethod) of {done, #recvState{statusCode = StatusCode, headers = Headers, body = Body}} -> - agAgencyUtils:agencyReply(CurInfo, {ok, Body, StatusCode, Headers}), + agAgencyUtils:agencyReply(CurInfo, {StatusCode, Body, Headers}), case RequestsOuts of [] -> case RequestsIns of @@ -229,7 +229,7 @@ overReceiveTcpData(#srvState{poolName = PoolName, serverName = ServerName, rn = {tcp, Socket, Data} -> try agHttpProtocol:response(RecvState, Rn, RnRn, Data, IsHeadMethod) of {done, #recvState{statusCode = StatusCode, headers = Headers, body = Body}} -> - agAgencyUtils:agencyReply(CurInfo, {ok, Body, StatusCode, Headers}), + agAgencyUtils:agencyReply(CurInfo, {StatusCode, Body, Headers}), case RequestsOuts of [] -> case RequestsIns of