Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带标题的Python JSON Post_Python_Json - Fatal编程技术网

带标题的Python JSON Post

带标题的Python JSON Post,python,json,Python,Json,我正在尝试使用python请求库发送POST请求。我已经在这里查看了这些问题的答案,但是我仍然看不出为什么我的请求失败了,出现了400个错误 我的要求如下: url = 'http:/srv01/bill_me' h = {'Content-type': 'application/json', 'Authorization': 'JWT eyJ0eX'} data = {"name": "Chris"} r = requests.post(url, data=json.dumps(data),

我正在尝试使用python请求库发送POST请求。我已经在这里查看了这些问题的答案,但是我仍然看不出为什么我的请求失败了,出现了400个错误

我的要求如下:

url = 'http:/srv01/bill_me'
h = {'Content-type': 'application/json', 'Authorization': 'JWT eyJ0eX'}
data = {"name": "Chris"}
r = requests.post(url, data=json.dumps(data), headers=h)
status = r.status_code
print(status)
r = requests.post(url, data=json.dumps(data), headers={'Authorization': 'JWT eyJ0eX'})

该请求在Postman中运行良好,但在我尝试通过python运行它时返回400错误。

问题在于头,它需要作为字典传递。我将代码更改如下:

url = 'http:/srv01/bill_me'
h = {'Content-type': 'application/json', 'Authorization': 'JWT eyJ0eX'}
data = {"name": "Chris"}
r = requests.post(url, data=json.dumps(data), headers=h)
status = r.status_code
print(status)
r = requests.post(url, data=json.dumps(data), headers={'Authorization': 'JWT eyJ0eX'})

代码没有问题(尽管您可以使用
json=data
并删除
Content-type
标题,让
请求为您解决这个问题)。服务器是黑匣子,可能是用户代理头或其中一个接受头在这里起作用。