我正在使用elasticsearch,並且RESTful API支持在搜索條件的GET請求中支持閱讀主體。發送帶有正文的GET請求
目前,我正在做
response = urllib.request.urlopen(url, data).read().decode("utf-8")
如果data
存在,它會發出一個帖子,否則GET。我怎麼能強制GET,儘管我包括數據(這應該是在POST的請求正文)
鈮:我知道我可以在Url中使用source
屬性,但查詢我們運行起來非常複雜,查詢定義非常冗長,導致查詢時間過長。
通過Roy Fielding的[關於該問題的評論](http://tech.groups.yahoo.com/group/rest-discuss/message/9962)(via:http:// stackoverflow .com/questions/978061/http-get-with-request-body),似乎這是對HTTP規範的濫用,並且解決方案將爲彈性搜索人員所依賴。基本上,只有當服務器存在時才允許請求主體崩潰,而不是因爲它意味着以任何方式進行處理。 (根據Wiki,Roy Fielding是HTTP的作者之一,也是REST的創始人之一,所以我猜他會知道的。) – millimoose 2013-03-20 16:55:30
@millimoose這是一個間接參數 - 從語義上講,當考慮REST服務時它是有意義的 - GET涉及邏輯操作,而不是通信機制 – Basic 2013-03-20 16:58:18
這就是說,我相信['http.client'](http://docs.python.org/3.0/library/http.client.html)可能比'urllib'並允許你構造「不尋常」的請求。 – millimoose 2013-03-20 17:00:24