Ich möchte wissen, ob es möglich ist, eine PUT, DELETE-Anfrage (praktisch) java.net.HttpURLConnection
an eine HTTP-basierte URL zu senden .
Ich habe so viele Artikel gelesen, in denen beschrieben wird, wie GET-, POST-, TRACE- und OPTIONS-Anforderungen gesendet werden, aber ich habe immer noch keinen Beispielcode gefunden, der PUT- und DELETE-Anforderungen erfolgreich ausführt.
java
httpurlconnection
put
http-delete
Matrix
quelle
quelle
Antworten:
So führen Sie einen HTTP-PUT durch:
So führen Sie ein HTTP-LÖSCHEN durch:
quelle
delete
. Wenn ich diesen Code so ausführe, wie er hier ist, passiert nichts wirklich, die Anfrage wird nicht gesendet. Die gleiche Situation ist, wenn ichpost
Anfragen mache , aber dort kann ich zum Beispiel verwenden,httpCon.getContent()
was die Anfrage auslöst. Aber dashttpCon.connect()
löst nichts in meiner Maschine aus :-)So hat es bei mir funktioniert:
quelle
Dann in Ihrem Code:
quelle
Ich stimme @adietisheim und den anderen Leuten zu, die HttpClient vorschlagen.
Ich habe einige Zeit damit verbracht, mit HttpURLConnection einen einfachen Anruf zu tätigen, um mich auszuruhen, und es hatte mich nicht überzeugt. Danach habe ich es mit HttpClient versucht und es war wirklich einfacher, verständlicher und netter.
Ein Beispiel für Code zum Ausführen eines http-Aufrufs lautet wie folgt:
quelle
HttpURLConnection
zum Laufen zu bringen, bin aber immer wieder auf einen seltsamen Fehler gestoßen, insbesondere :cannot retry due to server authentication, in streaming mode
. Ihrem Rat zu folgen hat bei mir funktioniert. Mir ist klar, dass dies nicht genau die Frage beantwortet, die verwendet werden sollHttpURLConnection
, aber Ihre Antwort hat mir geholfen.UrlConnection ist eine umständliche API, mit der man arbeiten kann. HttpClient ist bei weitem die bessere API und erspart Ihnen Zeitverlust bei der Suche, wie bestimmte Dinge erreicht werden können, wie diese Frage zum Stapelüberlauf perfekt zeigt. Ich schreibe dies, nachdem ich die jdk HttpUrlConnection in mehreren REST-Clients verwendet habe. Darüber hinaus ist HttpClient in Bezug auf Skalierbarkeitsfunktionen (wie Threadpools, Verbindungspools usw.) überlegen
quelle
Um einen PUT in HTML korrekt auszuführen, müssen Sie ihn mit try / catch umgeben:
quelle
Sogar Rest Template kann eine Option sein:
quelle
Es gibt eine einfache Möglichkeit zum Löschen und Einfügen von Anfragen. Sie können dies einfach tun, indem Sie
_method
Ihrer Post-Anfrage einen " " -Parameter hinzufügen und "PUT
" oder "DELETE
" für ihren Wert schreiben !quelle
Ich würde Apache HTTPClient empfehlen.
quelle