diff --git a/src/MessageRequest.jl b/src/MessageRequest.jl index 092dad561..ec02c55c6 100644 --- a/src/MessageRequest.jl +++ b/src/MessageRequest.jl @@ -55,7 +55,7 @@ function request(::Type{MessageLayer{Next}}, setheader(headers, "Content-Length" => "0") end end - if !hasheader(headers, "Content-Type") && body isa Form && method == "POST" + if !hasheader(headers, "Content-Type") && body isa Form && method in ("POST", "PUT") # "Content-Type" => "multipart/form-data; boundary=..." setheader(headers, content_type(body)) end diff --git a/test/multipart.jl b/test/multipart.jl index 43c5bcdfe..06cd90784 100644 --- a/test/multipart.jl +++ b/test/multipart.jl @@ -2,8 +2,10 @@ headers = Dict("User-Agent" => "HTTP.jl") body = HTTP.Form(Dict()) uri = "https://httpbin.org/post" + uri_put = "https://httpbin.org/put" @testset "Setting of Content-Type" begin - for r in (HTTP.request("POST", uri, headers, body), HTTP.post(uri, headers, body)) + for r in (HTTP.request("POST", uri, headers, body), HTTP.post(uri, headers, body), + HTTP.request("PUT", uri_put, headers, body), HTTP.put(uri_put, headers, body)) @test r.status == 200 json = JSON.parse(IOBuffer(HTTP.payload(r))) @test startswith(json["headers"]["Content-Type"], "multipart/form-data; boundary=")