Por que o squid rejeita este POST multipart-form-data do curl?

3

Isso falha:

$ curl --trace multipart-fail.log -F "source={}" http://127.0.0.1:3003/jslint

Com um erro 417 do status do squid, ERR_INVALID_REQ .

Eu nunca tive isso em prática através de um navegador da web, então é provavelmente uso curl em vez de squid, mas se eu disser que não use o proxy squid, o aplicativo da web na outra extremidade aceita muito bem.

(Se houver um site do StackExchange mais apropriado para isso, por favor me avise.)

    
por keturn 29.01.2010 / 20:54

4 respostas

4

O Squid não suporta Expect: 100-continue, sendo um dispositivo HTTP / 1.0. Observe o código de status da resposta 417 Expectation failed .

Curl deve repetir a solicitação automaticamente, mas isso não acontece; em vez disso, você precisa suprimir o cabeçalho Esperar; por exemplo,

curl -H "Expect:" --trace multipart-fail.log -F "source={}" http://127.0.0.1:3003/jslint
    
por 15.04.2010 / 05:24
3

Alternativamente, você pode configurar o Squid para simplesmente ignorar o cabeçalho da solicitação ...

Adicione no squid.conf: ignore_expect_100 em

link

    
por 07.06.2012 / 15:55
1

Para qualquer um que se deparar com esta questão e estiver recebendo o mesmo problema com cURL no PHP (não na linha de comando), tente adicionar esta linha:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));

Funcionou para mim.

    
por 05.04.2011 / 02:24
0

Depois de muito tempo, resolvi esse problema da seguinte maneira.

//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: link

Espero que isso ajude alguém ...

    
por 28.05.2013 / 13:31