如何通过POST请求使用Python请求正确进行身份验证

时间:2019-06-28 08:19:52

标签: python rest python-requests

我正在为iObeya使用REST API,我希望使用Python请求,但目前无法通过服务器进行身份验证。该文档指出,您可以使用POST请求进行身份验证,并且在返回时,如果身份验证正确,则应该获得一个名为“ JSESSIONID”的cookie。

到目前为止,我有这个:

url = 'https://link-to.com/iobeya/'
auth_url = 'https://link-to.com/iobeya/j_spring_security_check'
headers = {"content-type": "application/x-www-form-urlencoded; charset=utf-8"}

session = requests.Session()
session.auth = ("username", "password")

auth = session.post(url, verify=False)

r = session.get(url, verify=False, headers=headers)

print(r.status_code)

print(r.headers)

print(r.cookies)

返回的cookie为null。这是使用POST方法执行身份验证请求的正确方法吗?

这是描述auth API如何工作的页面: enter image description here

1 个答案:

答案 0 :(得分:2)

它只希望您使用usernamepassword进行常规POST。

auth_url = 'https://link-to.com/iobeya/j_spring_security_check'

session = requests.Session()
auth = session.post(auth_url, data={'username': username, 'password': password})