【发布时间】: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。
提前感谢您的帮助!!!!
【问题讨论】:
-
sys.setdefaultencoding("utf8")是一个隐藏各种问题的讨厌的 hack - anonbadger.wordpress.com/2015/06/16/…
标签: python json curl cookies session-cookies