L'en-tête Content-Type [application / x-www-form-urlencoded] n'est pas pris en charge sur Elasticsearch


135

J'avais ElasticSearch 5.2, et je viens de passer à la version 6.0.

J'essaie de créer un modèle d'index en suivant le guide ici , mais j'ai une erreur

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

Ma requête est

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

Réponses:


244

Pour résoudre ce problème, ajoutez l'option curl -H 'Content-Type: application/json'


Cette erreur est due à une vérification stricte du type de contenu introduite dans ElasticSearch 6.0, comme expliqué dans cet article

À partir d'Elasticsearch 6.0, toutes les demandes REST qui incluent un corps doivent également fournir le type de contenu correct pour ce corps.


Salut @sam, Y a-t-il une solution permanente pour ne pas avoir à donner cet indicateur à chaque demande.
Rupesh

1
@sam remercie sam cependant lorsque j'ajoute l'option curl, cela me donne {"error": "L'en-tête Content-Type [application / x-www-form-urlencoded] n'est pas pris en charge", "status": 406} curl: (6) Impossible de résoudre l'hôte: application
haneul kim

2
@haneulkim Si vous exécutez curl sous Windows, vous devez utiliser des guillemets doubles au lieu de guillemets simples. Voici un exemple de commande curl sous Windows: curl -X PUT "localhost: 9200 / customer / _doc / 1? Pretty" -H "Content-Type: application / json" -d "{\" name \ ": \" John Doe \ "}"
Kevin Le

11

La solution est d'ajouter Content-Type: application/json tête

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

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

Sous Windows, lorsque vous indiquez JSON comme paramètre, utilisez uniquement des guillemets doubles. Utilisez le caractère d'échappement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.