尝试使用urllib2将json数据发送到togglapi时出现HTTP错误400

2024-05-17 02:34:54 发布

您现在位置:Python中文网/ 问答频道 /正文

当使用以下代码连接到toggl api时,我连接并获得授权。在

username = token
password = 'api_token'
url = 'http://www.toggl.com/api/v3/tasks.json'

req = urllib2.Request(url)
auth_string = base64.encodestring('%s:%s' % (username, password))
req.add_header("Authorization", "Basic %s" % auth_string)
f = urllib2.urlopen(req)
response = f.read()

当我尝试启动一个新任务时,我必须以json格式发送数据。为了测试,我创建了json对象并将数据添加到我的Request对象中

^{pr2}$

但现在我收到的唯一响应是“urllib2.HTTPError:HTTPError 400:Bad Request”。有人能告诉我我哪里出错了吗?在


Tags: 对象代码tokenauthapijsonurlstring
2条回答

根据API documentation,您至少缺少一个标题。尝试:

req = urllib2.Request(url, data, {"Content-type": "application/json"})

如果这还不够,请尝试对数据使用urllib.urlencode。如果还不够,请添加一个用户:密码请求,如API示例中所示。在

我已经想好了。多亏了trypy,我需要在请求中添加一个“Content-type”头。在

我不得不从我的身份验证字符串中去掉任何换行符和换行符。在

auth_string = base64.encodestring('%s:%s' % (username, password)).strip()

相关问题 更多 >