python请求登录帖子获取响应代码500

时间:2015-03-08 15:50:21

标签: python python-requests

code below:
#!/bin/env python
# -*- coding: utf-8 -*-

import sys
import requests

#headers = {'User-Agent': 'Mozilla/5.0',"ContentType":"text/xml;charset=utf-8"}
payload = {
    'userName':'myusername',
    'password':'mypasswd',
    'callback':'jQuery17209257929018213263_1425826216682',
    'redirectURL':'http://www.10010.com',
    'redirectType':'01',
    'productType':'01',
    'pwdType':'01',strong text
    'rememberMe':'01'
}
link    = 'https://uac.10010.com/portal/Service/MallLogin'
s = requests.Session()
resp    = s.post(link,data=payload)
print resp
print resp.content
print resp.text

当我运行代码时,我得到响应500,但是当我在浏览器中使用params复制此链接时,它可以工作,我可以登录。 我找不到原因。我需要帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

试试这个。

header_content = {'Content-type': 'application/json'} 
js_data = json.dumps({'username': 'myusername', 
             'password': 'mypasswd',
             'callback':'jQuery17209257929018213263_1425826216682',
             'redirectURL':'http://www.10010.com',
             'redirectType':'01',
             'productType':'01',
             'pwdType':'01',
             'rememberMe':'01'})
response = requests.post(link, data=js_data, headers=header_content, verify=False)

if response.status_code == 200:
   print(response.content)

你需要在标题中指定内容,在你的情况下它是json。此外,当您通过https执行请求时,证书验证可能会导致问题,因此请通过" verify = False"关闭验证。 json格式的错误也可能是500的原因,所以为了确保你传递适当的json对象,我建议使用json.dumps()。 希望能帮助到你。此致!

答案 1 :(得分:-1)

出现此错误时,请先检查您的网页是否可以在浏览器中加载...

  

localhost / codeigniter_folder_name / index.php

它可能显示一些关于权限的错误。在这种情况下,请使用以下命令更改您的codeigniter文件夹的权限:

$ sudo chmod 755 -R /var/www/html/Codeigniter_folder_name