我正在尝试使用Python请求克服特定API服务的身份验证挑战。我已经尝试过BasicHTTP和其他默认的auth方法。所以我试图通过表单数据发送用户名和密码。
以下是Chrome DevTools在手动成功登录时显示的内容(如果您需要DevTools提供更多数据,请告诉我们):
Request Method:POST
Status Code:302 Found
Form Data
__LASTFOCUS:
__EVENTTARGET:
__EVENTARGUMENT:
__VIEWSTATE: <hashed stuff>
__VIEWSTATEGENERATOR:7A06DDCB
__SCROLLPOSITIONX:0
__SCROLLPOSITIONY:0
ctl00%24MainContentPlaceHolder%24MainLogin%24UserName:<usernamecleartext>
ctl00%24MainContentPlaceHolder%24MainLogin%24Password:<passwordcleartext>
ctl00%24MainContentPlaceHolder%24MainLogin%24RememberMe:on
ctl00%24MainContentPlaceHolder%24MainLogin%24LoginButton:Log+In+%3E
这是我的代码:
import requests
url='<theloginurl>'
payload = {
'ctl00$MainContentPlaceHolder$MainLogin$UserName':'<usernamecleartext>',
'ctl00$MainContentPlaceHolder$MainLogin$Password':'<passwordcleartext>'
}
r = requests.post(url, data=payload)
print(r.url)
print(r)
print(r.headers)
即使我在我的有效负载词典中包含其他两个表单项DevTools报告,结果也是一样。