Как выполнить HTTP PUT в bash?

Я отправляю запросы стороннему API. В нем говорится, что я должен отправить HTTP PUT на http://example.com/project?id=projectId

Я попытался сделать это с помощью PHP curl, но я не получаю ответа от сервера. Может быть, что-то не так с моим кодом, потому что я никогда раньше не использовал PUT. Есть ли способ для меня выполнить HTTP PUT из командной строки bash? Если да, то какая команда?

Ответ 1

С curl это будет что-то вроде

curl --request PUT --header "Content-Length: 0" http://website.com/project?id=1

но, как сказал Маттиас, вам, вероятно, понадобятся и некоторые данные в теле, поэтому вы захотите также тип контента и данные (плюс длина контента будет больше)

Ответ 2

Если вы действительно хотите использовать только bash, на самом деле он имеет некоторую поддержку в сети.

 echo -e "PUT /project?id=123 HTTP/1.1\r\nHost: website.com\r\n\r\n" > \
   /dev/tcp/website.com/80

Но я думаю, вы также хотите отправить некоторые данные в теле?