Как мне выполнить HTTP PUT в Bash? - PullRequest
11 голосов
/ 12 декабря 2011

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

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

Ответы [ 2 ]

6 голосов
/ 12 декабря 2011

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

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

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

6 голосов
/ 12 декабря 2011

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

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

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

...