2017-04-02 75 views
1

我试图做的Django以下请求: enter image description hereDjango的X WWW的形式进行了urlencoded请求

我试着下面的代码,但它不工作:

data = {'username': admin, 
     'password': 123, 
     'grant_type': 'password', 
     'client_id': 'xxxx', 
     'client_secret': 'xxxx'} 
headers = {'content-type': 'application/x-www-form-urlencoded'} 
r = requests.post(url, data=data, headers=headers) 

谢谢您的帮助 !

回答

2

默认情况下是表格编码。

通常,您希望发送一些表单编码的数据 - 非常类似于HTML 表单。要做到这一点,只需将字典传递给数据参数即可。您的 数据字典将在请求 时自动进行表格编码。

>>> payload = {'key1': 'value1', 'key2': 'value2'} 
>>> r = requests.post("http://httpbin.org/post", data=payload) 
>>> print r.text 
{ 
    "origin": "179.13.100.4", 
    "files": {}, 
    "form": { 
    "key2": "value2", 
    "key1": "value1" 
    }, 
    "url": "http://httpbin.org/post", 
    "args": {}, 
    "headers": { 
    "Content-Length": "23", 
    "Accept-Encoding": "identity, deflate, compress, gzip", 
    "Accept": "*/*", 
    "User-Agent": "python-requests/0.8.0", 
    "Host": "127.0.0.1:7077", 
    "Content-Type": "application/x-www-form-urlencoded" 
    }, 
    "data": "" 
} 

http://docs.python-requests.org/en/v0.10.7/user/quickstart/#make-a-post-request

+0

由于它的伟大工程。所以现在请求被正确执行,但执行请求后出现以下错误:{'error':'unsupported_grant_type'} – antoinv10

+0

此错误由您的服务返回,请参阅文档。 –

+0

根据我读到的内容,如果数据不是以header {“content-type”:“application/x-www-form-urlencoded”}发送的,则返回此错误。但是,我发送了这个请求的标题不是? – antoinv10

相关问题