-1

我有一个使用 urllib2 的现有 Http POST:

data = 'client_id=%s&client_secret=%s&grant_type=authorization_code&code=%s&redirect_uri=%s' % (settings.GOOGLE_CLIENT_ID, settings.GOOGLE_CLIENT_SECRET, code, redirect_uri)

req = urllib2.Request(access_token_url, data=data)
response = urllib2.urlopen(req)
response_content = response.read()

json_response = json.loads(response_content)

我正在尝试将其转换为 Requests 库(http://docs.python-requests.org/),但我收到了 400 Invalid Request。

这是我的尝试:

params = {'redirect_uri' : redirect_uri}
params['client_id'] = settings.GOOGLE_CLIENT_ID
params['client_secret'] =  settings.GOOGLE_CLIENT_SECRET
params['grant_type'] = 'authorization_code'
params['code'] = code

req = requests.post(access_token_url, data=params)
json_response = req.json()

我尝试调整它以使用参数而不是数据,但我得到了同样的错误。

有什么我想念的吗?

4

1 回答 1

0

确保 data dict 的值尚未像requests为您那样转义。请注意您的原始示例如何不进行任何转义。

于 2013-06-19T17:28:55.970 回答