Python请求post收到错误的重定向URL

时间:2016-01-24 09:18:16

标签: python post cookies python-requests

我正在尝试登录我们院长的网站。但是在通过Python请求发布数据时收到错误。在使用Chrome检查过程后,我发现方法POST收到的网址与Chrome上收到的网址不同。

以下是我的部分代码。

import requests
url_get = 'http://ssfw.xjtu.edu.cn/index.portal'
url_post = 'https://cas.xjtu.edu.cn/login?service=http%3A%2F%2Fssfw.xjtu.edu.cn%2Findex.portal'

s = requests.session()
user = {"username": email,
        "password": password,
       }

header = {
    'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Encoding':'gzip, deflate',
    'Accept-Language':'zh-CN,zh;q=0.8',
    'Cache-Control':'max-age=0',
    'Connection':'keep-alive',
    'Content-Length':'141',
    'Content-Type':'application/x-www-form-urlencoded',
    'Host':'cas.xjtu.edu.cn',
    'Origin':'https://cas.xjtu.edu.cn',
    'Upgrade-Insecure-Requests':'1',
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36'
    }

我从via a = s.get(url_get)获取了Cookie,它应该重定向到url_post,然后添加Cookie和referer。

_cookie = a.cookies['JSESSIONID']
header['Cookie'] = 'JSESSIONID='+_cookie
header['Referer']= 'https://cas.xjtu.edu.cn/login;jsessionid='+_cookie+'?service=http%3A%2F%2Fssfw.xjtu.edu.cn%2Findex.portal'
r = s.post(url2, json = user, allow_redirects = False)

但是r.headers['location'] == 'https://cas.xjtu.edu.cn/login?service=http%3A%2F%2Fssfw.xjtu.edu.cn%2Findex.portal'

在Chrome上,它应为http://ssfw.xjtu.edu.cn/index.portal?ticket=ST-211860-UEh41PdZXfpg4rsvyDg1-gdscas01

嗯......其实我想知道为什么他们不同,我怎样才能通过Python Requests跳转到正确的网址(似乎Chrome上的那个是正确的)

0 个答案:

没有答案