     case next_chunk(fun) do
       {:ok, item, fun} when is_list(item) ->
         stream_request(fun, body <> List.to_string(item))
+
       {:ok, item, fun} ->
         stream_request(fun, body <> item)
+
       :eof ->
-        {:ok, body, byte_size body}
+        {:ok, body, byte_size(body)}
     end
   end
 


                  {:done, _req_ref} ->
                    Map.put(acc, :done, true)
                end
              end)

            if Map.get(response, :done) do
              response = Map.drop(response, [:done])
              {:ok, conn, response}
            else
              stream_response(conn, response)
            end

          _ ->
            {:error, "TODO: Error Handle"}
        end
    end
  end

    %URI{host: host, scheme: scheme, port: port, path: path, query: query} = URI.parse(env.url)
    query = (query || "") |> URI.decode_query() |> Map.to_list()
    path = Tesla.build_url(path, env.query ++ query)

    method =
      case env.method do
        :head -> "GET"
        m -> m |> Atom.to_string() |> String.upcase()
      end

    request(
      method,
