如何在python中发出post请求

如何在python中发出post请求,python,curl,Python,Curl,下面是curl命令: curl -H "X-API-TOKEN: <API-TOKEN>" 'http://foo.com/foo/bar' --data # 因此,基于此。。我想: curl-H“X-API-TOKEN:”''--data'{“title”:“foobar”,“body”:“这个body既有“双引号”又有“单引号”}” 不幸的是,我也无法理解这一点(比如cli中的curl) 虽然我想用python发送这个请求。 如何做到这一点?使用标准的Pythonhttpli

下面是curl命令:

curl -H "X-API-TOKEN: <API-TOKEN>" 'http://foo.com/foo/bar' --data # 
因此,基于此。。我想:

curl-H“X-API-TOKEN:”''--data'{“title”:“foobar”,“body”:“这个body既有“双引号”又有“单引号”}”

不幸的是,我也无法理解这一点(比如cli中的curl) 虽然我想用python发送这个请求。
如何做到这一点?

使用标准的Python
httplib
urllib
库,您可以做到这一点

import httplib, urllib

headers = {'X-API-TOKEN': 'your_token_here'}
payload = "'title'='value1'&'name'='value2'"

conn = httplib.HTTPConnection("heise.de")
conn.request("POST", "", payload, headers)
response = conn.getresponse()

print response
或者,如果您想使用名为


你试过一个叫pycurl的图书馆吗?这实际上是对curl的模拟,具有完全相同的设置和几乎相同的语法。我使用了这两种方法,而且我更喜欢请求,这更简单。请注意,请求为json响应体解析提供了内置函数:respJsonDict=r.json(),在请求示例中,它应该是
json=payload
,不
data=payload
如果payload是一个json结构,如下所示。。。
import httplib, urllib

headers = {'X-API-TOKEN': 'your_token_here'}
payload = "'title'='value1'&'name'='value2'"

conn = httplib.HTTPConnection("heise.de")
conn.request("POST", "", payload, headers)
response = conn.getresponse()

print response
import requests

headers = {'X-API-TOKEN': 'your_token_here'}
payload = {'title': 'value1', 'name': 'value2'}

r = requests.post("http://foo.com/foo/bar", data=payload, headers=headers)