我是Python的新手,我需要构建一个连接到我们的API服务的Python库,发送一些json数据,一切正常,但有一点,我需要发送一些dicts执行POST请求:
def create_project(self, project):
print project
params = simplejson.dumps(project)
print params
req = requests.post(self.url+'/projects/addSpeedy.json',
data=params,
auth=HTTPBasicAuth(self.api_id, self.api_key),verify=False)
data = simplejson.loads(req.text)
return data
我传递给该函数的项目参数包含以下结构:
script = {
'part001': 'HI',
'part002': 'WORLD'
}
project = {
'title': 'Project posted from Python Carrot',
'script': script,
'remarks': "I want the voice be similar to Bugs Bunny.",
'test': '1'
}
然而,在执行请求时,API告诉我缺少所需的'title'字段,但是当在函数中打印数据时一切似乎都很好,dict json编码是我在请求站点中看到的这种情况: http://docs.python-requests.org/en/latest/user/quickstart/#more-complicated-post-requests
我已经尝试了其他混合结果的方法它不应该按照它应该的方式工作,也问题不是API,因为我们在其他语言中有库并且它工作正常。
答案 0 :(得分:0)
很难猜到,如果没有关于http客户端和服务器API的更多详细信息,会出现什么问题。我的第一次尝试调试就是抓住wireshark并检查,如果您生成的请求与其他客户的实现生成的请求相同,并回答以下问题: