5

由于搜索,我需要向另一个 URI 调用 GET、POST、PUT 等请求,但我无法在金字塔内部找到一种方法。目前有什么办法吗?

4

3 回答 3

9

只需使用现有的 python 库来调用其他网络服务器。

在 python 2.x 上,使用urllib2,对于 python 3.x,使用urllib.request。或者,您可以安装requests.

请注意,在您自己提供请求的同时从您的服务器调用外部站点可能意味着您的访问者最终会等待停止响应的第 3 方 Web 服务器。确保设置适当的超时时间。

于 2012-07-28T15:59:17.810 回答
6

金字塔使用 webob,它具有 1.2 版的客户端 api

from webob import Request
r = Request.blank("http://google.com")
response = r.send()

通常,您想为请求覆盖的任何内容都将作为参数传入。

from webob import Request
r = Request.blank("http://facebook.com",method="DELETE")

另一个方便的功能是您可以将请求视为通过网络传递的 http

print r

DELETE  HTTP/1.0
Host: facebook.com:80

文档

于 2012-07-28T22:53:49.107 回答
1

还要检查响应状态代码:response.status_int 例如,我使用它来检查我的内部 URI,并查看给定的相对 URI 是否真的由框架提供(例如生成面包屑并将中间路径作为链接仅当存在是后面的页面)

于 2012-11-02T20:12:45.003 回答