L'intestazione Content-Type [application / x-www-form-urlencoded] non è supportata su Elasticsearch


134

Avevo ElasticSearch 5.2 e ho appena aggiornato a 6.0.

Sto cercando di creare un modello di indice seguendo la guida qui , ma ho riscontrato un errore

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

La mia domanda è

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

Risposte:


243

Per risolvere questo problema, aggiungi l'opzione arricciatura -H 'Content-Type: application/json'


Questo errore è dovuto al rigoroso controllo del tipo di contenuto introdotto in ElasticSearch 6.0, come spiegato in questo post

A partire da Elasticsearch 6.0, tutte le richieste REST che includono un corpo devono anche fornire il tipo di contenuto corretto per quel corpo.


Ciao @sam, c'è qualche soluzione permanente in modo che non debba dare questo flag per ogni richiesta.
Rupesh

1
@sam ringrazia sam comunque quando aggiungo l'opzione curl mi dà {"errore": "L'intestazione Content-Type [application / x-www-form-urlencoded] non è supportata", "status": 406} curl: (6) Impossibile risolvere l'host: applicazione
haneul kim

2
@haneulkim Se si esegue l'arricciatura su Windows, è necessario utilizzare il carattere di virgoletta doppia anziché la virgoletta singola. Ecco il comando curl di esempio su Windows: curl -X PUT "localhost: 9200 / customer / _doc / 1? Pretty" -H "Content-Type: application / json" -d "{\" name \ ": \" John Doe \ "}"
Kevin Le

11

La soluzione è aggiungere l' Content-Type: application/jsonintestazione

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

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

In Windows, quando si fornisce JSON come parametro, utilizzare solo virgolette doppie. Usa il carattere di fuga.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.