This fails:
$ curl --trace multipart-fail.log -F "source={}" http://127.0.0.1:3003/jslint
With a squid status 417 error, ERR_INVALID_REQ
.
- trace of failing curl request
- trace of successful curl request that uses urlencoding (curl -d) instead of multipart (curl -F)
- formatted version of squid's error message
I've never had this in practice through a web browser, so it's probably curl usage instead of squid, but if I tell curl not to use the squid proxy, the web application on the other end accepts it just fine.
(If there's a more appropriate StackExchange site for this, please let me know.)
Best Answer
Squid doesn't support Expect: 100-continue, being a HTTP/1.0 device. Notice the response status code
417 Expectation failed
.Curl should retry the request automatically, but it doesn't; instead, you need to suppress the Expect header; e.g.,