Nagłówek Content-Type [application / x-www-form-urlencoded] nie jest obsługiwany w Elasticsearch


146

Kiedyś miałem ElasticSearch 5.2 i właśnie zaktualizowałem do 6.0.

Próbuję utworzyć szablon indeksu zgodnie z przewodnikiem tutaj , ale wystąpił błąd

Content-Type header [application/x-www-form-urlencoded] is not supported

Moje pytanie brzmi

curl -X PUT localhost:9200/_template/template_1 -d '
{
  "index_patterns": ["te*", "bar*"],
  "mappings": {
    "type1": {
      "properties": {
        "host_name": {
          "type": "keyword"
        }
      }
    }
  }
}'

Odpowiedzi:


256

Aby to naprawić, dodaj opcję curl -H 'Content-Type: application/json'


Ten błąd wynika ze ścisłego sprawdzania typu zawartości wprowadzonego w ElasticSearch 6.0, jak wyjaśniono w tym poście

Począwszy od Elasticsearch 6.0, wszystkie żądania REST, które zawierają treść, muszą również zawierać poprawny typ zawartości dla tej treści.


Cześć @sam, czy jest jakieś trwałe rozwiązanie, abym nie musiał podawać tej flagi przy każdym żądaniu.
Rupesh

2
@sam dziękuje sam, ale kiedy dodam opcję curl, otrzymuję {"error": "Nagłówek Content-Type [application / x-www-form-urlencoded] nie jest obsługiwany", "status": 406} curl: (6) Nie można rozwiązać hosta: aplikacja
haneul kim

3
@haneulkim Jeśli uruchamiasz curl w systemie Windows, musisz użyć podwójnego cudzysłowu zamiast pojedynczego cudzysłowu. Oto przykładowe polecenie curl w systemie Windows: curl -X PUT "localhost: 9200 / customer / _doc / 1? Pretty" -H "Content-Type: application / json" -d "{\" name \ ": \" John Doe \ "}"
Kevin Le

14

Rozwiązaniem jest dodanie Content-Type: application/jsonnagłówka

curl -XPUT 'localhost:9200/_template/template_1' \
  -H 'Content-Type: application/json' \
  -d '**your query**'

2
"{ \"name\": { \"first\": {} }, \"address\": [ { \"address1\":\"lane\" } ] } "

W systemie Windows, podając JSON jako parametr, używaj tylko podwójnych cudzysłowów. Użyj znaku ucieczki.


Dzięki, to było naprawdę pomocne
zatrzymaj
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.