【问题标题】:curl -b cookies -c cookies -X POST -d @some_auth.json url --- python equivalentcurl -b cookies -c cookies -X POST -d @some_auth.json url --- python 等效
【发布时间】:2016-01-09 10:36:25
【问题描述】:

上面的命令行使用 -d 选项传递给它的 json 文件中的数据发出 curl 请求,并获取 cookie 并将它们存储在 cookies 文件夹中。

这些 cookie 可以在后续 curl 请求中使用,而无需明确指定凭据。

我正在尝试将上述命令行转换为 python 代码。 已尝试以下代码 sn-ps 但均无效。

代码 1:

import requests, sys, json

s = requests.Session()
url = 'some_url'

r = s.post(url, data={'cmd': 'login', 'loginname': 'some_login', 'password': 'some_password' } )
print(s.cookies)

代码 2:

from requests import Session

import requests, sys, json

reload(sys)
sys.setdefaultencoding("utf8")

f = open("auth.json", "r")
p = json.load(f)

url = 'https://api.some.com/auth'
s = requests.Session()

service_url = 'http://api.some.com/some_service'
r= requests.get(url, auth=(p['login'], p['password']))

c = r.cookies

r = requests.get(service_url, cookies = c, verify = False)

print(c)

第二个代码尝试在第二个请求中验证和使用 cookie。

提前感谢您的帮助!!!!

【问题讨论】:

标签: python json curl cookies session-cookies


【解决方案1】:

cookie 参数是字典数据类型。将c = r.cookies 替换为以下代码:

c = r.cookies.get_dict()

【讨论】:

    猜你喜欢
    • 2012-06-13
    • 2023-03-21
    • 2013-06-30
    • 2017-10-26
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多