Proxy
為什麼 squid 拒絕來自 curl 的這個 multipart-form-data POST?
這失敗了:
$ curl --trace multipart-fail.log -F "source={}" http://127.0.0.1:3003/jslint
帶有 squid 狀態 417 錯誤,
ERR_INVALID_REQ
.
- curl請求失敗的痕跡
- 使用 urlencoding (curl -d) 而不是 multipart (curl -F)的成功 curl 請求的跟踪
- squid 錯誤資訊的格式化版本
我從來沒有通過網路瀏覽器在實踐中使用過這個,所以它可能是 curl 使用而不是 squid,但是如果我告訴 curl 不要使用 squid 代理,另一端的網路應用程序會很好地接受它。
(如果有更合適的 StackExchange 站點,請告訴我。)
Squid 不支持 Expect: 100-continue,它是一個 HTTP/1.0 設備。注意響應狀態碼
417 Expectation failed
。Curl應該自動重試請求,但它不會;相反,您需要抑制 Expect 標頭;例如,
curl -H "Expect:" --trace multipart-fail.log -F "source={}" http://127.0.0.1:3003/jslint
或者,您可以將 Squid 配置為簡單地忽略該請求標頭…
在 squid.conf 中添加:ignore_expect_100 on