Saya ingin tahu apakah mungkin untuk mengirim PUT, HAPUS permintaan (praktis) melalui java.net.HttpURLConnection
ke URL berbasis HTTP.
Saya telah membaca begitu banyak artikel yang menjelaskan bagaimana cara mengirim permintaan GET, POST, TRACE, OPTIONS tetapi saya masih belum menemukan kode sampel yang berhasil melakukan permintaan PUT dan DELETE.
java
httpurlconnection
put
http-delete
Matriks
sumber
sumber
Jawaban:
Untuk melakukan PUT HTTP:
Untuk melakukan HTTP DELETE:
sumber
delete
. Ketika saya menjalankan kode ini seperti di sini, tidak ada yang terjadi, permintaan tidak terkirim. Situasi yang sama adalah ketika saya melakukanpost
permintaan, tetapi di sana saya dapat menggunakan misalnyahttpCon.getContent()
yang memicu permintaan. TapihttpCon.connect()
itu tidak memicu apa pun di mesin saya :-)Beginilah cara kerjanya untuk saya:
sumber
Kemudian dalam kode Anda:
sumber
Saya setuju dengan @adietisheim dan semua orang yang menyarankan HttpClient.
Saya menghabiskan waktu mencoba membuat panggilan sederhana untuk beristirahat layanan dengan HttpURLConnection dan itu tidak meyakinkan saya dan setelah itu saya mencoba dengan HttpClient dan itu benar-benar lebih mudah, dapat dimengerti dan menyenangkan.
Contoh kode untuk melakukan panggilan http put adalah sebagai berikut:
sumber
HttpURLConnection
untuk bekerja, tapi terus berlari ke dalam kesalahan aneh, khususnya:cannot retry due to server authentication, in streaming mode
. Mengikuti saran Anda berhasil untuk saya. Saya menyadari ini tidak menjawab pertanyaan yang meminta untuk digunakanHttpURLConnection
, tetapi jawaban Anda membantu saya.UrlConnection adalah API yang aneh untuk digunakan. HttpClient sejauh ini adalah API yang lebih baik dan itu akan membantu Anda dari kehilangan waktu mencari cara untuk mencapai hal-hal tertentu seperti pertanyaan stackoverflow ini menggambarkan dengan sempurna. Saya menulis ini setelah menggunakan jdk HttpUrlConnection di beberapa klien REST. Selain itu ketika datang ke fitur skalabilitas (seperti threadpools, kolam koneksi dll.) HttpClient lebih unggul
sumber
Untuk melakukan PUT dalam HTML dengan benar, Anda harus mengelilinginya dengan try / catch:
sumber
Even Rest Template dapat menjadi pilihan:
sumber
ada cara sederhana untuk menghapus dan menempatkan permintaan, Anda bisa melakukannya dengan menambahkan "
_method
" parameter ke permintaan posting Anda dan menulis "PUT
" atau "DELETE
" untuk nilainya!sumber
Saya akan merekomendasikan Apache HTTPClient.
sumber