我正在尝试使用python获取http post请求的响应。我使用的是Python 2.7.3 我需要得到我发出的http post请求的响应。 我尝试使用请求模块执行以下操作:
import requests
import urllib
url = "http://"+server+":"+port+"/myService"
data = urllib.urlencode({'name':name, 'description':description, 'tags': tags, 'status': status})
response = requests.post(url, data = data)
为此,我收到了204回复。但终端的curl命令运行得很好。所以我尝试使用os.system
来运行curl命令,这很好用。但问题是,现在我无法获得响应状态。 os.system
返回0。
我也尝试使用subprocess
模块
import subprocess
params = "name="+name+"&tags="+tags+"&description="+description+"&status="+status
proc = subprocess.Popen(['curl', '-X', 'POST', '-d',
params, url], stdout=subprocess.PIPE)
(out, err) = proc.communicate()
print out
为此,它打印以下内容:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 101 0 0 100 101 0 1712 --:--:-- --:--:-- --:--:-- 1741
打印out
不打印任何内容。请帮忙。
答案 0 :(得分:3)
10.2成功2xx
此类状态代码表示客户端的请求已成功接收,理解和接受。
...
10.2.5 204无内容
服务器已完成请求但不需要返回实体正文...
你的POST在每个意义上都是成功的。