Это не удается:
$ curl --trace multipart-fail.log -F "source={}" http://127.0.0.1:3003/jslint
С ошибкой squid status 417, ERR_INVALID_REQ
.
У меня никогда не было этого на практике через веб-браузер, поэтому, вероятно, это использование curl вместо squid, но если я скажу curl не использовать прокси-сервер squid, веб-приложение на другом конце прекрасно это примет.
(Если для этого есть более подходящий сайт StackExchange, дайте мне знать.)
Squid не поддерживает Expect: 100-continue, будучи устройством HTTP / 1.0. Обратите внимание на код состояния ответа 417 Expectation failed
.
Завиток должен повторить запрос автоматически, но этого не происходит; вместо этого вам нужно подавить заголовок Expect; например.,
curl -H "Expect:" --trace multipart-fail.log -F "source={}" http://127.0.0.1:3003/jslint
В качестве альтернативы вы можете настроить Squid, чтобы он просто игнорировал этот заголовок запроса ...
Добавьте в squid.conf: ignore_expect_100 на
Для тех, кто сталкивается с этим вопросом и сталкивается с той же проблемой с cURL в PHP (не в командной строке), попробуйте добавить эту строку:
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");
Reff: http://djzone.im/2010/05/php-curl-ntlm-squid-proxy-authentication/
Надеюсь, это кому-то поможет ...