Quero saber se é possível enviar solicitação PUT, DELETE (praticamente) através java.net.HttpURLConnection
de URL baseada em HTTP.
Li muitos artigos descrevendo como enviar solicitações GET, POST, TRACE, OPTIONS, mas ainda não encontrei nenhum código de exemplo que execute com êxito solicitações PUT e DELETE.
java
httpurlconnection
put
http-delete
Matriz
fonte
fonte
Respostas:
Para executar um HTTP PUT:
Para executar um HTTP DELETE:
fonte
delete
. Quando executo esse código como está aqui, nada realmente acontece, a solicitação não é enviada. A mesma situação é quando estou fazendopost
solicitações, mas lá posso usar, por exemplo, ohttpCon.getContent()
que aciona a solicitação. Mas ahttpCon.connect()
não desencadear qualquer coisa na minha máquina :-)É assim que funcionou para mim:
fonte
Então no seu código:
fonte
Concordo com @adietisheim e o resto das pessoas que sugerem o HttpClient.
Passei um tempo tentando fazer uma simples chamada para descansar no serviço com o HttpURLConnection e isso não me convenceu; depois disso, tentei com o HttpClient e ficou muito mais fácil, compreensível e agradável.
Um exemplo de código para fazer uma chamada http colocada é o seguinte:
fonte
HttpURLConnection
ao trabalho, mas continuou correndo em um erro estranho, especificamente:cannot retry due to server authentication, in streaming mode
. Seguir o seu conselho funcionou para mim. Sei que isso não responde exatamente à pergunta, que pede para ser usadaHttpURLConnection
, mas sua resposta me ajudou.UrlConnection é uma API estranha para trabalhar. O HttpClient é, de longe, a melhor API e poupará o seu tempo a pesquisar como conseguir certas coisas como esta pergunta de stackoverflow ilustra perfeitamente. Escrevo isso depois de ter usado o jdk HttpUrlConnection em vários clientes REST. Além disso, quando se trata de recursos de escalabilidade (como conjuntos de threads, conjuntos de conexões etc.), o HttpClient é superior
fonte
Para fazer um PUT em HTML corretamente, você precisará cercá-lo com try / catch:
fonte
Mesmo modelo de descanso pode ser uma opção:
fonte
existe uma maneira simples de excluir e colocar solicitação, basta fazê-lo adicionando um
_method
parâmetro " " à sua solicitação de postagem e escrevendo "PUT
" ou "DELETE
" pelo seu valor!fonte
Eu recomendaria o Apache HTTPClient.
fonte