Запрос ввода Curl: заголовок типа содержимого не поддерживается

#json #bash #curl

#json #bash #curl

Вопрос:

Пытаюсь выполнить демонстрацию с помощью Elastic для настройки сопоставления с помощью JSON. Работает в Ubuntu LTS и продолжает сталкиваться с проблемами с запросом.

Исходная проблема:

 curl -XPUT "localhost:9200/stub" -d "{"test"}"
  

Возвращает ошибку:

 curl: (3) Failed to convert “localhost to ACE; string contains a disallowed character
  

Я попытался изменить без порта для тестирования и все равно получил тот же результат. То же самое с попыткой использования одинарных кавычек и 127.0.0.1

Есть идеи, чего мне может не хватать?

Обновление: исправлены ошибки в кавычках, все еще возникают проблемы.

 curl -XPUT "localhost:9200/stub" -d "{"test"}"
  

Возвращает ошибку:

 {"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}
  

Комментарии:

1. теперь это проблема с сервером, с которым вы разговариваете. правильнее всего обратиться к документации сервера / api, но у меня есть догадка, попробуйте: curl -XPUT 'localhost:9200/stub' -H 'Content-Type: application/json' --data-raw '{"test":1}' , что вы получаете?

Ответ №1:

У вас есть типографские кавычки ( “” ) в команде. В Bash (и, насколько я знаю, во всех других оболочках POSIX) они обрабатываются как буквальные, а не синтаксические символы, поэтому они становятся частью curl аргумента.

Обычно это вызвано плохим программным обеспечением для блога копирование-вставка кода от третьих сторон, чего следует избегать.

Комментарии:

1. Да, кажется, были некоторые ошибочные кавычки, спасибо. Обновлено с новой ошибкой.