diff --git a/src/docker/docker_http.erl b/src/docker/docker_http.erl index ce4764f..28121e2 100644 --- a/src/docker/docker_http.erl +++ b/src/docker/docker_http.erl @@ -40,18 +40,18 @@ receive_response(ConnPid, StreamRef) -> {error, timeout} end. -spec receive_body(pid(), reference(), integer(), proplists:proplist(), binary()) -> - {ok, integer(), proplists:proplist(), binary()} | {error, timeout22}. + {ok, integer(), proplists:proplist(), binary()} | {error, timeout}. receive_body(ConnPid, StreamRef, Status, Headers, Acc) -> receive {gun_data, ConnPid, StreamRef, fin, Data} -> - {ok, Status, Headers, <>}; + Body = iolist_to_binary([Acc, Data]), + {ok, Status, Headers, Body}; {gun_data, ConnPid, StreamRef, nofin, Data} -> - NewAcc = <>, - receive_body(ConnPid, StreamRef, Status, Headers, NewAcc); + receive_body(ConnPid, StreamRef, Status, Headers, [Acc, Data]); {gun_down, ConnPid, _, Reason, _} -> {error, {http_closed, Reason}} after 10000 -> - {error, timeout22} + {error, timeout} end. %% 通过 Unix Socket 调用 Docker API @@ -104,4 +104,4 @@ receive_body(Callback, ConnPid, StreamRef) -> after 30000 -> Callback({error, timeout}), {error, timeout} - end. + end. \ No newline at end of file