Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将urllib2 POST转换为请求_Python_Python Requests - Fatal编程技术网

Python 将urllib2 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

我有一个使用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库(),但得到了一个无效的请求

以下是我的尝试:

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&消息是“无效请求”。是否有拒绝投票的原因?这不是一个正确的问题吗?