#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. Да, кажется, были некоторые ошибочные кавычки, спасибо. Обновлено с новой ошибкой.