header python requests.put() 中的数据不变
header data in python requests.put() does not change
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
。我想使用 PUT() 和 charset = utf-16
来制作 req2
。当我试图通过设置 req2(第一行代码)的 headers 来做到这一点时,它没有做任何事情,因为语句 print(req2.headers)
仍然打印
{'Date': 'Thu, 01 Mar 2018 09:51:00 GMT', 'Transfer-Encoding': 'chunked', 'Content-Type': 'application/json;charset=UTF-8'}
如果我是正确的,req2.headers 会显示响应 header。您正在设置请求 header 的 Content-Type,表明您发送的内容是用 UTF-16 编码的。我不认为响应必须具有与请求相同的编码,由服务器决定。
您应该使用 Accept-Charset
header 来说明您希望接收的内容类型:
Accept-Charset: utf-8
服务器仍然可以忽略你。通常这不是问题,因为如果您使用 response.text
字段,Requests 会为您解码响应。
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
。我想使用 PUT() 和 charset = utf-16
来制作 req2
。当我试图通过设置 req2(第一行代码)的 headers 来做到这一点时,它没有做任何事情,因为语句 print(req2.headers)
仍然打印
{'Date': 'Thu, 01 Mar 2018 09:51:00 GMT', 'Transfer-Encoding': 'chunked', 'Content-Type': 'application/json;charset=UTF-8'}
如果我是正确的,req2.headers 会显示响应 header。您正在设置请求 header 的 Content-Type,表明您发送的内容是用 UTF-16 编码的。我不认为响应必须具有与请求相同的编码,由服务器决定。
您应该使用 Accept-Charset
header 来说明您希望接收的内容类型:
Accept-Charset: utf-8
服务器仍然可以忽略你。通常这不是问题,因为如果您使用 response.text
字段,Requests 会为您解码响应。