所以我有两段代码。 这个有效:
import requests
url = 'http://XXXXXX.com.au?xxxxx'
r = requests.get(url,auth = ('user', 'password'), headers = {'X-CSRF-TOKEN': 'Fetch'})
token = r.headers['x-csrf-token']
c = requests.utils.dict_from_cookiejar(r.cookies)
reqData = {'param' : 'value'}
headers = {'X-CSRF-TOKEN': token}
r = requests.post(url, auth = ('user', 'password'), data = reqData, headers = headers, cookies = c)
这不是:
import requests
s = requests.Session()
url = 'http://XXXXXX.com.au?xxxxx'
s.auth = ('user', 'password')
s.headers.update({'X-CSRF-TOKEN': 'Fetch'})
r = s.get(url)
token = r.headers['x-csrf-token']
c = s.cookies
reqData = {'param' : 'value'}
headers = {'x-csrf-token': token}
r = s.post(url, data=reqData, headers=headers, cookies=c)
我尝试了第二个代码,是否包含cookie的显式复制和传递,以及将其从cookiejar转换为dict。仍然无法获得CSRF令牌验证。
我现在很高兴使用第一个选项,但是我在本次会议中到底做错了什么?可能只是所讨论的Web服务器的特质吗?