Vladimir Sitnikov created HTTPCLIENT-2325:
---------------------------------------------

             Summary: Avoid adding "; charset=" for multipart/form-data requests
                 Key: HTTPCLIENT-2325
                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2325
             Project: HttpComponents HttpClient
          Issue Type: Improvement
          Components: HttpClient (classic)
    Affects Versions: 4.5.14
            Reporter: Vladimir Sitnikov


Currently, HttpClient adds {{; charset=}} to {{multipart/form-data}} which both
1) Breaks certain HTTP servers: see https://github.com/apache/jmeter/pull/6251, 
https://github.com/akka/akka-http/issues/338
2) Does not follow RFC 2046 and RFC 7578

Even though including "charset" parameter is not explicitly forbidden by RFCs, 
there are known HTTP servers that can't parse such requests, so why generating 
the "charset=..." for multipart/form-data in the first place?

See how RFC 7578 suggests setting the default charset: 
https://datatracker.ietf.org/doc/html/rfc7578#section-5.1.2
They mention a {{_charset_}} field instead.

----

Unfortunately, removal of {{multipartEntityBuilder.setCharset(charset);}} in 
the caller's code is not enough as HttpClient uses the supplied charset in 
{{HttpBrowserCompatibleMultipart}}.

---

I suggest to avoid sending {{charset}} within {{multipart/form-data}} header, 
so it includes only {{boundary}} just like RFC 7578 samples.

In other words, I suggest removing these lines: 
https://github.com/apache/httpcomponents-client/blob/54900db4653d7f207477e6ee40135b88e9bcf832/httpmime/src/main/java/org/apache/http/entity/mime/MultipartEntityBuilder.java#L215-L217



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org

Reply via email to