Py学习  »  Elasticsearch

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

Paul Rousseau • 4 年前 • 206 次点击  

当我试图使用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
 
206 次点击  
文章 [ 1 ]  |  最新文章 4 年前
7stud
Reply   •   1 楼
7stud    4 年前

这是我的设置:

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