python - 使用来自 Python 的 POST 测试 RESTful API

标签 python api http

我正在尝试测试我正在使用的 RESTful 接口(interface)(我正在使用这个接口(interface):codeigniter-restserver),我想使用 Python。

GET 似乎工作正常,但我在使用 POST 时遇到了问题。我不是在问这个图书馆的来龙去脉,而是我只是在尝试 了解如何使用 Python 测试 POSTing。这是我得到的:

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()

这个脚本是否足以作为测试 POSTing 的方法?我在 SO 上看到很多关于寻找 GUI 工具来执行此操作的人的请求(Firefox 插件,etc) 但对我来说,首先构建 RESTful 应用程序的重点是拥有一个 API,我可以编写脚本来快速修改数据库。 (用数据填充它 来自 JSON 文件,无论什么。)

这种基于 Python 的方法是否走在正确的轨道上?

谢谢

最佳答案

直接写入 httplib 没问题,但级别较低。

查看 Requests模块。这是一种非常简单的 pythonic 方法来制作和发送 http 请求。

import requests

requests.post(url, data={}, headers={}, files={}, cookies=None, auth=None)

关于python - 使用来自 Python 的 POST 测试 RESTful API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6393122/

相关文章:

python - 类中的类型错误

python - setData非常慢

ruby - 使用 Magento SOAP API v1 和 Savon Ruby Gem v2 创建类别时获取 'Error cannot find parameter'

http - .then 处理程序被乱序调用

python - 无法使用 Python 连接到在不同端口运行的 Postgresql

python - 修改 NumPy 数组的特定行/列

php - 使用 PHP 的基本 RESTful API 示例

c# - 使用 Mailgun 批量发送和单独的消息 ID

java - 为什么我看到的页面与维基百科不同?

http - Golang gin 仅在 ipv4 中获取客户端 IP