Como posso fazer um HTTP PUT com o Wget?


37

Estou tentando usar o Wget para acessar uma interface RESTful , mas não consigo descobrir como fazer HTTP PUT com o Wget. Como eu posso fazer isso? Ou não é possível?

Respostas:



52
wget --method=PUT --body-data=<STRING>

Isso é um pouco tarde, mas em algum momento após a postagem original, eles adicionaram a opção "--method". Não tenho certeza de quando foi adicionado, mas consulte https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=684189#24 para obter detalhes.


5
Essa resposta deve ser aceita.
Vanuan 14/10/16

3
Resposta deve ser aceita em 2014, 2016 ou quando. --method param não estava disponível no wget em 2010 :(
Bernhard Döbler

4
Não na caixa ocupado
Dmitry Minkovsky

Parece não funcionar ao usar com autenticação. Eu tentei wget --method=PUTcom autenticação de acesso digest, mas o wget não executa o procedimento de autenticação, como faz com a solicitação GET padrão.
Joe

--method ainda não está disponível no centos 7.
David V.

21

Como essa é a interface REST , acho que você gostaria de usá curl-la -X PUT, assim:

curl -i -X PUT http://www.example.tld/rest/updateEntity/1234?active=false

Ou se você precisar "postar" dados de um arquivo, como um XML:

curl -i -X PUT -H "Content-Type: application/xml; charset=utf-8" -d @"/tmp/some-file.xml" http://www.example.tld/rest/updateEntity

6

Para mim, seguinte trabalho:

curl -T <file-path> <url>

Por alguma razão, quando fiz o seguinte, nada aconteceu (também não houve erro):

curl -X PUT -d <file-path> <url>         (did not work)

1
-denviará os dados que você inseriu na linha de comando, para tentar COLOCAR o caminho do arquivo como texto.
che

4

Se você não quiser usar um arquivo como dados, faça o seguinte.

curl -X PUT -d "something=blabla&somethingelse=blaha" http://www.example.com
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.