Команда CURL REST в Java, заголовок указан, но все еще получен 415 Неподдерживаемый тип носителя
Я пытаюсь отправить запрос REST, отправив команду CURL с Java Process Runtime с кодом:
Process p = Runtime.getRuntime().exec("curl -i --user user_name:password -H \"Content-Type: application/json\" -X PUT url_without_quote -d @/home/user_name/put_content.json");
Тем не менее, я получил 415 Unsupported Media Type даже с указанным заголовком. Я попробовал вышеупомянутую команду в терминале, и она прекрасно работает с кодом возврата 200. Я также пробовал запрос GET с теми же параметрами в команде curl без -d содержимого запроса PUT, и он возвращает 200, а GET корректный ответный контент.
Это странно в том смысле, что та же команда работает в терминале, но не работает в коде, выполняющем процесс Java.
Сталкивались ли вы с той же проблемой или у вас есть решение?
Я сомневаюсь, что для запроса PUT REST необходимо указать какой-либо дополнительный заголовок или имеет значение регистр символов "Content-Type: application / json"?
1 ответ
После некоторых испытаний следующие работы:
Process p = Runtime.getRuntime().exec("curl -i --user user_name:password -H Content-Type:application/json -X PUT url_without_quote -d @/home/user_name/put_content.json");
Из другой ветки обсуждения предлагается, чтобы приложение следовало за символом ":" без пробела, и двойные кавычки указывать не нужно.
Теперь это прекрасно работает для меня! Спасибо за комментарии выше!