这失败了:
$ curl --trace multipart-fail.log -F "source={}" http://127.0.0.1:3003/jslint
有一个squid状态417错误, ERR_INVALID_REQ 。
我从来没有在实践中通过networking浏览器,所以它可能是curl使用,而不是鱿鱼,但如果我告诉curl不要使用鱿鱼代理,另一端的Web应用程序接受它就好了。
(如果有更合适的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
或者,你可以configurationSquid来简单地忽略该请求头…
在squid.conf中添加:ignore_expect_100
对于任何人遇到这个问题,并在PHP(不是命令行)cURL获得相同的问题,请尝试添加此行:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
它为我工作。
经过很长一段时间,我以下面的方式解决了这个问题。
//proxy server address $proxyServer="192.168.43.201"; //Proxy server port $proxyPort="3128"; curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_NTLM); curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); curl_setopt($ch, CURLOPT_PROXY, "$proxyServer:$proxyPort");
注意: http ://djzone.im/2010/05/php-curl-ntlm-squid-proxy-authentication/
希望这可以帮助别人…