使用网站的Cookies发送JSON请求的Python脚本
我正在尝试模拟一个经过认证的JSON请求。我正在使用Requests模块来实现这个目标。
import requests
import json
url = "https://"
headers = {
'Host': 'example.com',
'content-type': 'application/json',
'Connection': 'keep-alive'
}
data = {
"asdsdsd": {
"AppName": "esdf",
"Language": "EN",
"fsef": [
{
"sfddf": [
{
"sdfsdfsdf": "sdfsdfsdf"
}
]
}
]
},
"sdfdf": {
"sdfsdf": "sdfsdfsdf"
}
}
r = requests.post(url, data=json.dumps(data), headers=headers ,verify=False)
我该如何把认证的cookie包含进去呢?
我可以在浏览器中打开这个请求(带上请求头和数据),这样我就能使用浏览器的认证cookie了。
有没有什么方法可以做到这一点?
3 个回答
0
headers = {
'Host': 'example.com',
'content-type': 'application/json',
'Connection': 'keep-alive'
}
session = requests.session()
session.headers=headers
session.post(url, data=json.dumps(data) ,verify=False)
你可以使用会话来处理提交的数据。
0
你可以直接把你的数据以cookie的形式放到请求里,像这样:
data = {
"sessionid":"yoursessionidorsomethingelseidontcarelolwtfhelloworld"
}
url = "https://youramazingurl.com/list_some_private_data"
res = requests.get(url, cookies=data)
完成啦 :)
1
使用一个 Session
对象 来管理 cookies。
s = requests.Session()
# load initial page to get session cookies set, perhaps a CSRF token
loginform = s.get(loginurl)
# post login information to the form
s.post(someurl, data={...})
# post JSON with session with authentication cookie
s.post(someurl, ...)