社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Elasticsearch

对elasticsearch服务器的Httpoison请求提供了一个EconRefused错误,而对同一个对象进行卷曲则不会

Paul Rousseau • 5 年前 • 253 次点击  

当我试图使用httpoison查询elasticsearch服务器时

iex(1)> HTTPoison.get "http://localhost:9200"

{:error, %HTTPoison.Error{id: nil, reason: :econnrefused}}.

如果我做了

curl -XGET "http://localhost:9200"

我明白了

{
  "name" : "es01",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "Wik-EpMkQ8ummJE6ctNAOg",
  "version" : {
    "number" : "7.0.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "e4efcb5",
    "build_date" : "2019-04-29T12:56:03.145736Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.7.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

P、 S.:将localhost更改为127.0.0.1并不能解决这个问题。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53419
 
253 次点击  
文章 [ 1 ]  |  最新文章 5 年前
7stud
Reply   •   1 楼
7stud    6 年前

这是我的设置:

elasticsearch Version: 7.0.1
{:httpoison, "~> 1.5"}  #=> mix.lock shows version 1.5.1 was installed

:

$ curl -XGET "http://localhost:9200"
{
  "name" : "My-MacBook-Pro.local",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "vEFl3B5TTYaBxPhQFuXPyQ",
  "version" : {
    "number" : "7.0.1",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "e4efcb5",
    "build_date" : "2019-04-29T12:56:03.145736Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.7.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

HTTPoison结果:

$ iex -S mix
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]

===> Compiling parse_trans
===> Compiling mimerl
===> Compiling metrics
===> Compiling unicode_util_compat
===> Compiling idna
==> ssl_verify_fun
Compiling 7 files (.erl)
Generated ssl_verify_fun app
===> Compiling certifi
===> Compiling hackney
==> httpoison
Compiling 3 files (.ex)
Generated httpoison app
==> hello
Compiling 15 files (.ex)
Generated hello app
Interactive Elixir (1.6.6) - press Ctrl+C to exit (type h() ENTER for help)

iex(1)> HTTPoison.get "http://localhost:9200"
{:ok,
 %HTTPoison.Response{
   body: "{\n  \"name\" : \"My-MacBook-Pro.local\",\n  \"cluster_name\" :  
\"elasticsearch\",\n  \"cluster_uuid\" : \"vEFl3B5TTYaBxPhQFuXPyQ\",\n  
\"version\" : {\n    \"number\" : \"7.0.1\",\n    \"build_flavor\" :   
\"default\",\n    \"build_type\" : \"tar\",\n    \"build_hash\" :   
\"e4efcb5\",\n    \"build_date\" : \"2019-04-29T12:56:03.145736Z\",\n  
\"build_snapshot\" : false,\n    \"lucene_version\" : \"8.0.0\",\n  
\"minimum_wire_compatibility_version\" : \"6.7.0\",\n  
\"minimum_index_compatibility_version\" : \"6.0.0-beta1\"\n  },\n  
\"tagline\" : \"You Know, for Search\"\n}\n",
   headers: [
     {"content-type", "application/json; charset=UTF-8"},
     {"content-length", "522"}
   ],
   request: %HTTPoison.Request{ 
     body: "",
     headers: [],
     method: :get,
     options: [],
     params: %{},
     url: "http://localhost:9200"
   },
   request_url: "http://localhost:9200",
   status_code: 200
 }}

iex(2)> 

接下来,我停止了elasticsearch服务器,然后再次运行HTTPoison请求:

ex(2)> HTTPoison.get "http://localhost:9200"
{:error, %HTTPoison.Error{id: nil, reason: :econnrefused}}

对于curl请求,我得到了类似的结果:

$ curl -XGET "http://localhost:9200"
curl: (7) Failed to connect to localhost port 9200: Connection refused