第1步:我要从文本文件(其中数据为JSON格式)中获取凭据 并将它们存储在变量中。
cred_values = {'username': 'myuser', 'password': 'mypwd'}
第二步:
username = cred_values['username']
password = cred_values['password']
第3步:准备我的有效载荷,标头。有效负载看起来像这样
login_headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Connection': 'keep-alive', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache',
'Origin': 'https://xxxxxx.com.au', 'Upgrade-Insecure-Requests': '1',
'Content-Type': 'application/x-www-form-urlencoded',
'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'en-US,en;q=0.9',
}
login_data = {
'curl': 'Z2FxxxxxZ2F', (xxxx - name of my company)
'flags': '0',
'forcedownlevel': '0',
'formdir': '5',
'username': username,
'password': password,
'trusted': '4',
'SubmitCreds': ''
}
第4步:发布请求
login_request_url = 'https://xxxx.com.au/Logon'
login_response = requests.post(login_request_url, headers=login_headers, data=login_data)
注意:
我还尝试过发送有效载荷
login_data = {'username': '' + username + '','password': '' + password + ''}
login_data = {'username': '' + str(username) + '','password': '' + str(password) + ''}
我还尝试将有效载荷作为json.dumps发送到请求
login_response = requests.post(login_request_url, headers=login_headers, data=json.dumps(login_data))
如果我发布上述请求但未登录,则不会出现任何错误。
例如:
如果我直接添加我的用户名,请在login_data中输入密码
Url看起来像这样,这意味着成功登录-'https://xxxx.com.au/content.asp?token = xxxxx'
如果我通过从凭证文件中抓取来发送用户名和密码,则
网址看起来像这样,表示未成功登录-'https://xxxx.com.au/'
答案 0 :(得分:0)
根据服务器的期望,您可能需要将JSON有效负载作为带引号的字符串发送:我认为您具有以下条件:
select a.StaffID, a.SubjectID, s.ID as SectionId, s.Name as SectionName, S.Remarks as SectionRemarks, sc.ID as ClassId, sc.Name as ClassName, sc.Remarks as ClassRemarks from AssignedSubject a
inner join Section s on a.SectionId=s.ID
inner join SchoolClass sc on sc.ID=s.ClassId where a.StaffID=3068
尝试以下
login_data = {'username': '' + username + '','password': '' + password + ''}
login_data = {'username': '' + str(username) + '','password': '' + str(password) + ''}
使用单引号将代码替换为字符串,并使用双引号表示字符串中的带引号的值(或者您可以采用其他方式)。另外,您也可以只使用相同的引号,然后转义您想在字符串中使用的引号,但是就我个人而言,我认为很难快速阅读 例如
login_data = '{"username": " ' + str(username) + ' ","password": "' + str(password) + '"}'
看看是否有帮助