curl:如何通过命令行发送cookie?
我读了这个发送曲奇curl的作品,但不适合我
我有一个REST
端点
class LoginResource(restful.Resource): def get(self): print(session) if 'USER_TOKEN' in session: return 'OK' return 'not authorized', 401
当我尝试访问
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"%
我的~/Downloads/cookies.txt
是
cat ~/Downloads/cookies.txt USER_TOKEN=in
而服务器什么也收不到
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 -
我错过了什么?
这对我有效
curl -v --cookie "USER_TOKEN=Yes" http://127.0.0.1:5000/
我可以看到在后端使用的价值
print request.cookies
你可以参考https://curl.haxx.se/docs/http-cookies.html关于如何使用cookie的完整教程。; 您可以使用
curl -c /path/to/cookiefile http://yourhost/
写入一个cookie文件并启动引擎并使用您可以使用的cookie
curl -b /path/to/cookiefile http://yourhost/
从中读取cookie并启动cookie引擎,或者如果它不是文件,它将传递给定的string。
您在Cookie文件中使用了错误的格式。 正如curl文档所述,它使用了一种旧的Netscape cookie文件格式,它与Web浏览器使用的格式不同。 如果你需要手动创build一个curl cookie文件, 这个post应该可以帮到你。 在你的例子中,文件应该包含以下行
127.0.0.1 FALSE / FALSE 0 USER_TOKEN in
有7个TAB分隔的字段,意思是域 , tailmatch , path , secure , expires , name , value 。