Python 将urllib2 POST转换为请求
我有一个使用urllib2的现有Http POST:Python 将urllib2 POST转换为请求,python,python-requests,Python,Python Requests,我有一个使用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_tok
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库(),但得到了一个无效的请求
以下是我的尝试:
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()
我试图调整它使用参数,而不是数据,但我得到了相同的错误
我遗漏了什么?请确保数据dict的值尚未转义,因为
请求将为您转义。请注意,您的原始示例没有进行任何转义。不应该是正确的调用,因为它是req=requests.post(access\u token\u url,params=params)
我尝试了params,但不起作用。您能编辑您的问题以插入完整的错误消息吗。您是否尝试过使用Wireshark之类的工具来捕获网络活动,以检查请求以查明问题?我刚刚收到一个响应代码400&消息是“无效请求”。是否有拒绝投票的原因?这不是一个正确的问题吗?