发送带有正文的GET请求

时间:2013-03-20 16:51:58

标签: python python-3.x

我正在使用elasticsearch,RESTful API支持在搜索条件的GET请求中支持读取主体。

我正在做

response = urllib.request.urlopen(url, data).read().decode("utf-8")

如果存在data,则会发出POST,否则发出GET。尽管事实上我包含了数据(根据POST要求在请求体中),我如何强制获取GET

Nb:我知道我可以在Url中使用source属性,但我们运行的查询很复杂,查询定义非常详细,导致查询时间过长。

1 个答案:

答案 0 :(得分:12)

我不知道使用urllib执行此操作的 nice 方法。但是,requests使用requests.request *函数使其变得微不足道(实际上,对于任意动词和请求内容都是微不足道的):

requests.request(method='get', url='localhost/test', data='some data')

构建一个小型测试Web服务器将显示数据确实是在请求正文中发送的,并且服务器感知的方法确实是GET。

*请注意我链接到requests.api.requests代码,因为这是实际函数定义所在的位置。您应该使用requests.request(...)

来调用它
相关问题