python中的头数据requests.put()不会改变

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的头数据requests.put()不会改变相关的知识,希望对你有一定的参考价值。

req2 = requests.put(url, json = json_data, headers= header)
print(req2.status_code)
print(req2.headers)

哪里json_data = req1.json()

url = 'some url'

header = {'Content-Type': 'application/data;charset=UTF-16'}

在上面的代码中,req1从服务器获得响应。 req1 json与url一起通过以获取响应req2。我想用req2使用PUT()制作charset = utf-16。当我试图通过设置req2(第一行代码)的标题来执行此操作时,它不执行任何操作,因为语句print(req2.headers)仍然打印

{'Date': 'Thu, 01 Mar 2018 09:51:00 GMT', 'Transfer-Encoding': 'chunked', 'Content-Type': 'application/json;charset=UTF-8'}
答案

如果我是正确的,req2.headers会显示响应标头。您正在设置请求标头的Content-Type,表明您发送的内容是以UTF-16编码的。我不认为响应必须与请求具有相同的编码,由服务器决定。

另一答案

您应该使用Accept-Charset标头来说明您希望接收的内容类型:

Accept-Charset: utf-8

服务器仍然可以忽略你。通常这不是问题,因为如果您使用response.text字段,请求将为您解码响应。

以上是关于python中的头数据requests.put()不会改变的主要内容,如果未能解决你的问题,请参考以下文章

Python请求,PUT空数据[重复]

Python之Requests库的7个主要方法

python爬虫开发 -------requests模块

python requests包的基本使用

python爬虫之requests

python之requests