jlf1992 2019-01-24 22:03 采纳率: 0%
浏览 1396

python3post请求问题,怎么转换

当"Content-Type":"application/x-www-form-urlencoded时,data就是soCode=xxx,
但是python3会抱错POST data should be bytes or an iterable of bytes. It cannot be of type str.,通过json.dumps(data).encode(encoding='utf-8')转化成bytes之后,实际post的data会变成“soCode=xxx”,怎么重新变成soCode=xxx?

  • 写回答

1条回答 默认 最新

  • lyhsdy 2019-01-25 09:38
    关注

    当 Content-Type: application/json
    post data这样写:
    {"参数名":"参数值","参数名":"参数值",...}
    {'soCode':'xxx'}

    当Content-Type: application/x-www-form-urlencoded
    post data这样写:
    name1=valule1&name2=value2...
    'soCode=xxx'

    例子:
    百度翻译:

    url='https://fanyi.baidu.com/sug'
    headers={
            'Host':'fanyi.baidu.com',
            'Origin':'https://fanyi.baidu.com',
            'Referer':'https://fanyi.baidu.com/?aldtype=16047',
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.15 Safari/537.36',
            'X-Requested-With':'XMLHttpRequest',
            'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
        }
    data='kw=love'
    req=requests.post(url=url,headers=headers,data=data).text
    print(req)
    
    评论

报告相同问题?