Wie zu verwenden cURL Cookies senden?
Habe ich gelesen, dass Cookies senden mit curl funktioniert, aber nicht für mich
Ich habe eine REST
Endpunkt als
class LoginResource(restful.Resource):
def get(self):
print(session)
if 'USER_TOKEN' in session:
return 'OK'
return 'not authorized', 401
wenn ich versuche zu erreichen, wie
curl -v -b ~/Downloads/cookies.txt -c ~/Downloads/cookies.txt http://127.0.0.1:5000/
* About to connect() to 127.0.0.1 port 5000 (#0)
* Trying 127.0.0.1...
* connected
* Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.27.0
> Host: 127.0.0.1:5000
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 401 UNAUTHORIZED
< Content-Type: application/json
< Content-Length: 16
< Server: Werkzeug/0.8.3 Python/2.7.2
< Date: Sun, 14 Apr 2013 04:45:45 GMT
<
* Closing connection #0
"not authorized"%
wo meine ~/Downloads/cookies.txt
ist
cat ~/Downloads/cookies.txt
USER_TOKEN=in
und der server empfängt nichts
127.0.0.1 - - [13/Apr/2013 21:43:52] "GET /HTTP/1.1" 401 -
127.0.0.1 - - [13/Apr/2013 21:45:30] "GET /HTTP/1.1" 401 -
<SecureCookieSession {}>
<SecureCookieSession {}>
127.0.0.1 - - [13/Apr/2013 21:45:45] "GET /HTTP/1.1" 401 -
was ist, dass ich bin fehlt?
- Ich denke, dass das hinzufügen der
-c
option weistcurl
verwenden die cookie-Datei als Ausgabe-cookie jar, die möglicherweise nicht, was Sie wollen. - das mit
-b
option allein auch nicht funktioniert, geben gleiche Fehler 🙁 - das format der
-b
cookie-Datei ist nicht nurvar=value
es sollte das gleiche wie das format der cookie jar geschrieben, mit-c
. Gehen Sie zu einer Website sendet cookies, mit dieser option, und nehmen Sie einen Blick auf die erstellte Datei. - Die-b-cookie_file sollte entweder im Netscape/Mozilla-format oder im plain-HTTP-Header. Hier ist ein Beispiel der plain-http-Header: Set-cookie: cookie_name=cookie_value; Dies ist das absolute minimum. Vergessen Sie nicht das Semikolon am Ende.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser arbeitete für mich
Ich konnte sehen, wie der Wert im backend mit
-b, --cookie
z.B.curl -b <file-or-pairs>
wenn das argument ist eine Zeichenkette mit der'='
symbol, es ist übergeben, wie es ist, anders behandelt wird als Dateiname zum Lesen von cookie aus.--cookie "key1=val1;key2=val2;..."
finden Sie in https://curl.haxx.se/docs/http-cookies.html für eine komplette Anleitung für die Arbeit mit cookies. Sie können
schreiben Sie eine cookie-Datei und starten Sie Motor und Cookies, die Sie verwenden können
cookies Lesen aus und starten Sie die cookie-engine, oder wenn es nicht eine Datei wird auf den angegebenen string.
-b
fahne, was ist der wesentliche Unterschied zwischen-c
&-b
beide starten Sie den Motor und zeigen Sie auf ein cookie-Datei?-b
liest daraus. Also beim senden von Anmeldeinformationen für ein login-Formular, geben Sie-c
zu schreiben, die daraus resultierende cookie-Datei, dann verwenden Sie-b
zu Lesen und das cookie in Ihrem nächsten Antrag.curl -b cookiefile -c cookiefile https://yourhost/
zu Lesen istSind Sie mit einem falschen format in die cookie-Datei. Als curl-Dokumentation Staaten, verwendet er eine alte Netscape cookie-Datei-format, das sich vom format von web-Browsern. Wenn Sie erstellen müssen eine curl cookie-Datei manuell, dieser Beitrag Ihnen helfen sollen. In deinem Beispiel sollte die Datei enthalten folgende Zeile
mit 7 TAB-getrennten Feldern Bedeutung domain, tailmatch, Pfad, sichere, abläuft, Namen, Wert.