python请求中的“缺少输入数据”消息

时间:2015-10-12 02:18:35

标签: python

我正在使用此代码

import urllib
import json
import requests

base_url = 'https://api.yomdam.com/1.0/stats/log'

headers = { "Content-type": "application/json",
            "Accept": "*/*",
            "YOMDAM-API-KEY":"1303-M0G7-AA8D-WWDN-MM7W-XXXX"}

message ={"log_payload": {"activity": "TEST","date": 1444403649404,"Key1": "Value1","Key2": "Value2"}}

r = requests.post(base_url, headers=headers, params = json.dumps(message))

我一直在

  

{“message”:“缺少输入数据。必填项:[u'log_payload']”}

我在chrome上使用Postman尝试了相同的请求并且它有效,我不知道为什么代码不起作用。

1 个答案:

答案 0 :(得分:1)

您可能应该使用data关键字参数进行requests.post调用,即:

r = requests.post(base_url, headers=headers, data=json.dumps(message))

这样json最终会在帖子体内而不是在URL中。

查看我的previous answer today

修改

如下所述,经过验证here,您可以简化对以下内容的调用:

r = requests.post(base_url, headers=headers, json=message)