Je veux savoir s'il est possible d'envoyer une requête PUT, DELETE (pratiquement) via java.net.HttpURLConnection
une URL basée sur HTTP.
J'ai lu tellement d'articles décrivant comment envoyer des requêtes GET, POST, TRACE, OPTIONS, mais je n'ai toujours pas trouvé d'exemple de code qui exécute avec succès les requêtes PUT et DELETE.
java
httpurlconnection
put
http-delete
Matrice
la source
la source
Réponses:
Pour effectuer un HTTP PUT:
Pour effectuer une SUPPRESSION HTTP:
la source
delete
. Quand j'exécute ce code tel qu'il est ici, rien ne se passe vraiment, la requête n'est pas envoyée. La même situation est lorsque je fais despost
requêtes, mais là je peux utiliser par exemplehttpCon.getContent()
ce qui déclenche la requête. Mais lehttpCon.connect()
ne déclenche rien dans ma machine :-)Voici comment cela a fonctionné pour moi:
la source
Puis dans votre code:
la source
Je suis d'accord avec @adietisheim et le reste des personnes qui suggèrent HttpClient.
J'ai passé du temps à essayer de faire un simple appel au service de repos avec HttpURLConnection et cela ne m'avait pas convaincu et après cela, j'ai essayé avec HttpClient et c'était vraiment plus facile, compréhensible et agréable.
Voici un exemple de code pour effectuer un appel put http:
la source
HttpURLConnection
au travail, mais rencontrais une erreur bizarre, en particulier:cannot retry due to server authentication, in streaming mode
. Suivre vos conseils a fonctionné pour moi. Je me rends compte que cela ne répond pas exactement à la question, qui demande à utiliserHttpURLConnection
, mais votre réponse m'a aidé.UrlConnection est une API difficile à utiliser. HttpClient est de loin la meilleure API et cela vous évitera de perdre du temps à chercher comment réaliser certaines choses comme cette question de stackoverflow illustre parfaitement. J'écris ceci après avoir utilisé le jdk HttpUrlConnection dans plusieurs clients REST. De plus, en ce qui concerne les fonctionnalités d'évolutivité (comme les pools de threads, les pools de connexions, etc.), HttpClient est supérieur
la source
Pour faire correctement un PUT en HTML, vous devrez l'entourer de try / catch:
la source
Même le modèle de repos peut être une option:
la source
il existe un moyen simple pour supprimer et mettre une requête, vous pouvez simplement le faire en ajoutant un
_method
paramètre " " à votre requête de publication et en écrivant "PUT
" ou "DELETE
" pour sa valeur!la source
Je recommanderais Apache HTTPClient.
la source