gpt4 book ai didi

python - Elasticsearch 查询在 Python 中使用 httplib 给出 "No handler for uri"

转载 作者:行者123 更新时间:2023-12-03 00:20:46 28 4
gpt4 key购买 nike

我用的是官方elasticsearch-py用于连接到 Elasticsearch 的本地实例的库(localhost,端口 9200,ES 版本 1.6.0)。这在独立的 Python 脚本中运行良好,但我无法让它与 Google App Engine 一起使用,出现以下错误:

No handler found for uri [http://localhost:9200/transaction/websession/_search] and method [GET]

经过一些调试,我将问题缩小到 App Engine 对 httplib 的使用用于 urlfetch RPC 代理。

所以基本上,我可以这样做:
r = urllib2.urlopen('http://localhost:9200/transaction/websession/_search')
r.read()

但不是这个:
c = httplib.HTTPConnection('localhost:9200')
c.request('GET', 'http://localhost:9200/transaction/websession/_search', None, {})
c.getresponse().read()

这是 Python 中的错误吗?还是在 Elasticsearch 中?我在这里想念什么?

最佳答案

我找到了答案。问题在于当前的 App Engine SDK。请求是这样创建的:

c.request('GET', 'http://localhost:9200/transaction/websession/_search', None, {})

什么时候应该是:
c.request('GET', '_search', None, {})

奇怪的是 latest source code version的 urlfetch stub 似乎与 shipped SDK 非常不同.

关于python - Elasticsearch 查询在 Python 中使用 httplib 给出 "No handler for uri",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31193488/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com