如何使用卷曲发送cookie?如何使用卷曲发送cookie?(How to use cURL to

2019-05-12 15:57发布

我读了发送cookies,卷曲的作品,但不适合我

我有一个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 -

那是什么我失踪?

Answer 1:

这为我工作

 curl -v --cookie "USER_TOKEN=Yes" http://127.0.0.1:5000/

我可以用看到后台的价值

print request.cookies


Answer 2:

你可以参考https://curl.haxx.se/docs/http-cookies.html对于如何使用Cookie的工作一个完整的教程。 您可以使用

curl -c /path/to/cookiefile http://yourhost/

写入一个cookie文件,启动引擎,并使用饼干,您可以使用

curl -b /path/to/cookiefile  http://yourhost/

读通过Cookie和启动发动机的cookie,或者如果它不是一个文件,它会通过给定的字符串。



Answer 3:

您正在使用您的cookie文件格式错误。 作为卷曲的文档状态,它使用的是旧的Netscape的cookie文件格式,它是由Web浏览器所使用的格式不同。 如果您需要手动创建一个卷曲的cookie文件, 这个职位应该帮助你。 在您的示例文件应包含以下行

127.0.0.1   FALSE   /   FALSE   0   USER_TOKEN  in

具有7 TAB分隔的字段意思 ,tailmatch, 路径安全到期名称



文章来源: How to use cURL to send Cookies?