Comment utiliser cURL pour envoyer des Cookies?
j'ai lu que envoyer des cookies avec curl fonctionne, mais pas pour moi
j'ai un REST
endpoint
class LoginResource(restful.Resource):
def get(self):
print(session)
if 'USER_TOKEN' in session:
return 'OK'
return 'not authorized', 401
quand j'essaie d'accéder comme
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"%
où mon ~/Downloads/cookies.txt
est
cat ~/Downloads/cookies.txt
USER_TOKEN=in
et le serveur ne reçoit rien
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 -
qu'est-ce que je manque?
3 réponses
cela a fonctionné pour moi
curl -v --cookie "USER_TOKEN=Yes" http://127.0.0.1:5000/
je pouvais voir la valeur en arrière-plan en utilisant
print request.cookies
vous pouvez vous référer à https://curl.haxx.se/docs/http-cookies.html pour un tutoriel complet sur la façon de travailler avec les cookies. vous pouvez utiliser
curl -c /path/to/cookiefile http://yourhost/
pour écrire dans un fichier cookie et démarrer le moteur et pour utiliser le cookie vous pouvez utiliser""
curl -b /path/to/cookiefile http://yourhost/
pour lire les cookies et démarrer le moteur de cookies, ou si ce n'est pas un fichier, il passera sur la chaîne donnée.
vous utilisez un mauvais format dans votre fichier cookie. Comme curl documentation indique, il utilise un vieux format de fichier de cookie Netscape, qui est différent du format utilisé par les navigateurs web. Si vous avez besoin de créer un fichier de cookie curl manuellement, ce post devrait vous aider. Dans votre exemple, le fichier doit contenir la ligne suivante
127.0.0.1 FALSE / FALSE 0 USER_TOKEN in
ayant 7 champs séparés par des onglets qui signifient domaine , tailmatch , chemin , sécurisé , expire , nom , valeur .