Wget save cookies tidak berfungsi


7

Saya sudah mencoba masuk di pyload melalui api web, tetapi wget tidak menyimpan cookie dan saya tidak mengerti mengapa.

Saya menggunakan perintah berikut:

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

Tetapi konten my_cookies.txt adalah:

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

Ketika saya menjalankan perintah yang sama tetapi dalam mode debug saya mendapatkan output berikut yang mencakup cookie yang ditetapkan dalam respons header:

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.

Adakah yang bisa memberitahu saya apa yang saya lakukan salah?

Jawaban:


2

Mengingat Anda masih menggunakan versi 1.10.2, Anda mungkin mengalami bug yang diperbaiki di versi 1.12, Agustus 2009. Anda benar-benar harus mempertimbangkan untuk memutakhirkan, terutama karena versi terbarunya adalah 1.13.4, dirilis dekat September, 2011.

Ngomong-ngomong ... bug yang dimaksud adalah: bugGNU Wget - Bugs: bug # 26775, Simpan cookie dari respons non-200 , yang melibatkan wget TIDAK menyimpan cookie ketika menerima kode kesalahan pengembalian non-200.

Sangat mungkin permintaan non-debug Anda di-cache atau apalah, atau melibatkan 302-redirect ... yang semuanya menyebabkan permintaan mengembalikan kode bukan 200 pengembalian. Output debug Anda TIDAK menunjukkan kode 200-OK ... apakah Anda menggunakan baris perintah yang sama persis untuk melakukan permintaan debug seperti ketika melakukan permintaan 'normal'?


Saya sudah mencoba memperbarui menggunakan optware tetapi tidak berhasil. Debug yang saya coba saya baru saja menambahkan switch -d ke perintah yang saya posting. Saya kira saya akan mencari cara meng-upgrade wget dan saya akan mencoba no-cache pada perintah.
TrymBeast

Homepage & source ditemukan di: gnu.org/software/wget
lornix

Sepertinya bug ini kembali GNU Wget 1.15. Saya menggunakannya di bawah Cygwin CYGWIN_NT-6.1 B21090094 1.7.32(0.274/5/3) 2014-08-13 23:03 i686 Cygwin. Tidak ada cookie yang disimpan saat --save-cookiesdigunakan. Dengan GNU Wget 1.11.4di Windows tidak ada masalah. Juga tidak ada masalah dengan GNU Wget 1.14on Linux triton 3.14.15-hardened-bs.
Jagger

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.