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分隔的字段,意思是tailmatchpathsecureexpiresnamevalue