Python请求模块发布返回状态码500错误

时间:2019-02-27 12:39:09

标签: python post get python-requests

我想使用请求模块登录我的大学门户。

import requests
r = requests.post("https://sabis.sakarya.edu.tr/tr/Login", data={"userName":"1111","Password":"xxx"})
print(r.status_code)

但是r.status_code返回500。 我在哪里犯错?

5 个答案:

答案 0 :(得分:0)

如果r.status_code返回了500状态代码,那么您的代码段就可以了。问题出在服务器端。因为5XX问题被视为服务器内部问题

答案 1 :(得分:0)

您需要先获取页面以获取page_source中“ __RequestVerificationToken”的值,然后使用此字段进行发布。

答案 2 :(得分:0)

您需要验证令牌才能正常工作。也许您的大学有可用的API文档,您可以在其中查看如何获取此令牌。甚至如何使用其API正确执行发布请求。 enter image description here

答案 3 :(得分:0)

也许您的帖子缺少某些信息,例如。发布数据中还有其他字段,或者您应该在post方法中设置标题。

答案 4 :(得分:0)

import requests
import re

url = "https://sabis.sakarya.edu.tr/tr/Login"

r1 = requests.get(url, verify=False)
__RequestVerificationToken = re.compile(
    r'input name="__RequestVerificationToken" type="hidden" value="(\S*?)"').findall(r1.text)[0]
print(__RequestVerificationToken)
data = {
    "userName": "1111", "Password": "xxx",
    '__RequestVerificationToken': __RequestVerificationToken,
    'ReturnURL': '',
    'RememberMe': 'false'
}
r2 = requests.post(url=url, data=data, verify=False)
print(r2.status_code)

#测试它,以及如何在注释中使用代码块?