我正在尝试测试我正在使用的RESTful接口(我正在使用这个:codeigniter-restserver),我想使用Python。
GET
似乎工作正常,但我遇到POST
问题。我不是在询问ins&这个图书馆的出局,我只是在尝试
弄清楚如何用Python测试POST
。这就是我所拥有的:
import httplib, urllib
params = urllib.urlencode({
'sentence': 'esta es una frase',
'translation': 'this is a sentence'
})
headers = {
"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"
}
conn = httplib.HTTPConnection("localhost:80")
conn.request("POST", "/myapp/phrase", params, headers)
response = conn.getresponse()
print response.status, response.reason
data = response.read()
conn.close()
此脚本是否足以作为测试POST
的方法?我已经看到很多关于人们寻找GUI工具的请求(Firefox插件,etc)
但对我来说,首先构建一个RESTful应用程序的关键是拥有一个我可以编写脚本的API来快速修改数据库。 (用数据填充它
来自JSON文件,无论如何。)
我是否采用这种基于Python的方法走上正轨?
由于
答案 0 :(得分:21)
直接写入httplib
很好,但水平较低。
查看Requests模块。这是一种非常简单和pythonic的方法来制作和发送http请求。
import requests
requests.post(url, data={}, headers={}, files={}, cookies=None, auth=None)
答案 1 :(得分:2)
POST通常通过更高级别的函数urllib2完成。
headers = {'User-Agent': user_agent}
data = urllib.urlencode(values)
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)
答案 2 :(得分:0)
还有Nap这只是请求的包装器,但可以方便地调用例如HTTP API。
使用示例:
from nap.url import Url
api = Url('http://httpbin.org/')
response = api.post('post', data={'test': 'Test POST'})
print(response.json())
更多示例:https://github.com/kimmobrunfeldt/nap#examples
免责声明:我小睡了。