Wget salvar cookies não funcionando

7

Eu tenho tentado entrar no pyload através da API da web, mas o wget não está salvando os cookies e eu não entendo o porquê.

Estou usando o seguinte comando:

wget --delete-after --keep-session-cookies --save-cookies=my_cookies.txt --post-data="username=USERNAME&password=PASSWORD" http://localhost:8000/api/login

Mas o conteúdo de my_cookies.txt é:

# HTTP cookie file.
# Generated by Wget on 2012-06-23 22:31:33.
# Edit at your own risk.

Quando executo o mesmo comando, mas no modo de depuração, recebo a seguinte saída que inclui o cookie definido na resposta do cabeçalho:

DEBUG output created by Wget 1.10.2 (Red Hat modified) on linux-gnueabi.

--22:31:11--  http://localhost:8000/api/login
Resolving localhost... 127.0.0.1
Caching localhost => 127.0.0.1
Connecting to localhost|127.0.0.1|:8000... connected.
Created socket 3.
Releasing 0x000504d0 (new refcount 1).

---request begin---
POST /api/login HTTP/1.0
User-Agent: Wget/1.10.2 (Red Hat modified)
Accept: */*
Host: localhost:8000
Connection: Keep-Alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 32

---request end---
[POST data: username=USERNAME&password=PASSWORD]
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Content-Length: 34
Content-Type: application/json
Cache-Control: no-cache, must-revalidate
Set-cookie:  beaker.session.id=405390ddc809efed54820638c95d7997; expires=Tue, 19-Jan-2038 04:14:07 GMT; Path=/
Connection: Keep-Alive
Date: Sat, 23 Jun 2012 21:31:11 GMT
Server: CherryPy/3.1.2 WSGI Server

---response end---
200 OK
hs->local_file is: login (not existing)
Registered socket 3 for persistent reuse.
TEXTHTML is on.
Length: 34 [application/json]
Saving to: 'login'

100%[=======================================>] 34          --.-K/s   in 0s

22:31:11 (1.28 MB/s) - 'login' saved [34/34]

Removing file due to --delete-after in main():
Removing login.
Saving cookies to my_cookies.txt.
Done saving cookies.

Alguém pode me dizer o que estou fazendo de errado?

    
por TrymBeast 23.06.2012 / 23:48

2 respostas

2

Considerando que você ainda está usando a versão 1.10.2, você pode estar enfrentando um bug que foi corrigido na versão 1.12 de agosto de 2009. Você realmente deve considerar a atualização, especialmente desde que a versão mais recente é 1.13.4, lançada perto de setembro , 2011.

De qualquer forma ... o bug em questão é assim: bugGNU Wget - Bugs: bug # 26775, Salvar cookies de respostas não-200 , que envolvem NÃO salvar cookies quando receber um código de erro de retorno não-200.

É bem possível que suas solicitações que não sejam de depuração estejam sendo armazenadas em cache ou algo assim, ou envolvam um redirecionamento 302 ... e todas elas fazem com que a solicitação retorne um código de retorno diferente de 200. Sua saída de depuração mostra códigos 200-OK ... você usou exatamente a mesma linha de comando para executar a solicitação de depuração do que ao fazer a solicitação 'normal'?

    
por 24.06.2012 / 09:33
8

Use --keep-session-cookies porque os cookies de sessão não são salvos por padrão

    
por 07.02.2013 / 14:50