使用Python中的POST测试RESTful API
我正在尝试测试一个正在开发的RESTful接口(我正在使用这个:),我想使用Python使用Python中的POST测试RESTful API,python,api,http,Python,Api,Http,我正在尝试测试一个正在开发的RESTful接口(我正在使用这个:),我想使用Python GETs似乎工作正常,但我在POSTs方面遇到了问题。我不是问这个图书馆的详细情况,我只是在尝试 了解如何使用Python测试POSTing。这就是我得到的: import httplib, urllib params = urllib.urlencode({ 'sentence': 'esta es una frase', 'translation': 'this is a s
GET
s似乎工作正常,但我在POST
s方面遇到了问题。我不是问这个图书馆的详细情况,我只是在尝试
了解如何使用Python测试POST
ing。这就是我得到的:
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
ing的一种方法?我在网上看到很多关于人们寻找GUI工具(Firefox插件)的请求
但对我来说,首先构建RESTful应用程序的关键是要有一个可以编写脚本的API来快速修改db。(用数据填充它
从JSON文件,不管怎样。)
我使用这种基于Python的方法是否正确
谢谢POST通常通过更高级别的函数urllib2完成
headers = {'User-Agent': user_agent}
data = urllib.urlencode(values)
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)
直接写入
httplib
很好,但级别相当低
查看模块。这是一种非常简单的pythonic方法,用于编写和发送http请求
import requests
requests.post(url, data={}, headers={}, files={}, cookies=None, auth=None)
还有一个只用于请求的包装器,它可以方便地调用HTTP API等
用法示例:
from nap.url import Url
api = Url('http://httpbin.org/')
response = api.post('post', data={'test': 'Test POST'})
print(response.json())
更多示例:
免责声明:我写了小睡