Meu script tinha finais de linha no estilo windows e, por algum motivo, isso atrapalhava as coisas.
Está funcionando agora que eu só tenho \n
finais de linha.
Estou tentando fazer login em um site usando solicitações de curl e HTTP.
Com a primeira solicitação http GET
, adiciono -c cookie.txt
ao comando para salvar o cookie em um arquivo. Para o segundo POST de onda, eu adicionei -b cookie.txt
para passar o mesmo cookie novamente.
Infelizmente acabo com uma mensagem de erro de sessão incorreta. Quando comparo a solicitação POST com a solicitação POST
do Chrome, vejo que o cookie tem mais dados do que está no meu cookie.txt. Quando copio POST
do Chrome usando o comando "copy as cURL", obtenho o cookie:
-H 'Cookie: PHPSESSID=rrh5d7l69tgl8633g3hklea2e0; POPUPCHECK=1140804027760'
Mas meu cookie.txt contém apenas o PHPSESSID
. O que eu não estou vendo aqui? Obrigada!
Editar
Eu adicionei o sinalizador de verbosidade aos dois comandos e recebi esta saída:
curl -v https://my.host.com --cookie-jar cookie.txt
GET / HTTP/1.1
> Host: my.host.com
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Tue, 30 Oct 2018 09:39:05 GMT
< Server: Apache/2.2.22 (Debian)
* Added cookie PHPSESSID="psq8shk4l13fos9dc5536i8l36" for domain my.host.com, path /, expire 0
< Set-Cookie: PHPSESSID=psq8shk4l13fos9dc5536i8l36; path=/
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
* Replaced cookie PHPSESSID="hdctvsar28qqmgn6rmu33kidv4" for domain my.host.com, path /, expire 0
< Set-Cookie: PHPSESSID=hdctvsar28qqmgn6rmu33kidv4; path=/
< Vary: Accept-Encoding
< Content-Length: 3694
< Connection: close
< Content-Type: text/html; charset=utf-8
curl -v -X POST "https://my.host.com/" -H "Content-Type: application/x-www-form-urlencoded" -b cookie.txt
> POST / HTTP/1.1
> Host: my.host.com
> User-Agent: curl/7.54.0
> Accept: */*
> Content-Type: application/x-www-form-urlencoded
> Content-Length: 73
>
* upload completely sent off: 73 out of 73 bytes
< HTTP/1.1 200 OK
< Date: Tue, 30 Oct 2018 09:39:06 GMT
< Server: Apache/2.2.22 (Debian)
* Added cookie PHPSESSID="lg9h4h8hlk69lrkosn0abpg7n7" for domain my.host.com, path /, expire 0
< Set-Cookie: PHPSESSID=lg9h4h8hlk69lrkosn0abpg7n7; path=/
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
* Replaced cookie PHPSESSID="r33haq0v45r4ofksrmm2ok86c5" for domain my.host.com, path /, expire 0
< Set-Cookie: PHPSESSID=r33haq0v45r4ofksrmm2ok86c5; path=/
< Vary: Accept-Encoding
< Content-Length: 3792
< Connection: close
< Content-Type: text/html; charset=utf-8
Meu script tinha finais de linha no estilo windows e, por algum motivo, isso atrapalhava as coisas.
Está funcionando agora que eu só tenho \n
finais de linha.