Elasticsearch에서 콘텐츠 유형 헤더 [application / x-www-form-urlencoded]가 지원되지 않습니다


134

이전에는 ElasticSearch 5.2를 사용했으며 6.0으로 업그레이드했습니다.

나는 가이드 다음 인덱스 템플릿을 생성하려고 여기 지만, 오류가 발생했습니다

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

내 질문은

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

답변:


243

이 문제를 해결하려면 curl 옵션을 추가하십시오. -H 'Content-Type: application/json'


이 오류는 이 게시물 에서 설명한대로 ElasticSearch 6.0에 도입 된 엄격한 컨텐츠 유형 검사 로 인한 것입니다.

Elasticsearch 6.0부터 본문을 포함하는 모든 REST 요청은 해당 본문에 올바른 컨텐츠 유형을 제공해야합니다.


안녕 @ 샘, 각 요청에 대해이 플래그를 제공 할 필요가 없도록 영구적 인 솔루션이 있습니까?
Rupesh

1
@sam 덕분에 sam에게 감사하지만 curl 옵션을 추가하면 { "error": "Content-Type header [application / x-www-form-urlencoded]는 지원되지 않습니다", "status": 406} curl : (6) 호스트를 해결할 수 없습니다 : 응용 프로그램
haneul kim

2
@haneulkim Windows에서 curl을 실행하는 경우 작은 따옴표 대신 큰 따옴표를 사용해야합니다. 다음은 Windows의 curl 명령 예입니다. curl -X PUT "localhost : 9200 / customer / _doc / 1? pretty"-H "Content-Type : application / json"-d "{\"name \ ": \"John Doe \ "}"
케빈 르

11

해결책은 Content-Type: application/json헤더 를 추가하는 것입니다

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

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

Windows에서 JSON을 매개 변수로 제공 할 때는 큰 따옴표 만 사용하십시오. 이스케이프 문자를 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.