Pada masa Apache Commons HttpClient versi 3.x, membuat permintaan POST multipart / form-data dimungkinkan ( contoh dari 2004 ). Sayangnya ini tidak lagi memungkinkan dalam versi 4.0 dari HttpClient .
Untuk aktivitas inti kami "HTTP", multi bagian agak di luar cakupan. Kami ingin menggunakan kode multi bagian yang dikelola oleh beberapa proyek lain yang termasuk dalam cakupannya, tetapi saya tidak menyadarinya. Kami mencoba memindahkan kode multi bagian ke commons-codec beberapa tahun yang lalu, tetapi saya tidak melepasnya. Oleg baru-baru ini menyebutkan proyek lain yang memiliki kode parsing multi bagian dan mungkin tertarik dengan kode pemformatan multi bagian kami. Saya tidak tahu statusnya saat ini. ( http://www.nabble.com/multipart-form-data-in-4.0-td14224819.html )
Adakah yang tahu tentang pustaka Java yang memungkinkan saya menulis klien HTTP yang dapat membuat permintaan POST multipart / form-data?
Latar belakang: Saya ingin menggunakan API Jarak Jauh Zoho Writer .
Jawaban:
Kami menggunakan HttpClient 4.x untuk membuat posting file multipart.
UPDATE : Pada HttpClient 4.3 , beberapa kelas sudah tidak digunakan lagi. Ini kode dengan API baru:
Di bawah ini adalah cuplikan asli kode dengan API HttpClient 4.0 yang tidak digunakan lagi :
sumber
Ini adalah dependensi Maven yang saya miliki.
Kode Java:
Dependensi Maven di pom.xml:
sumber
HttpEntity
kelasJika ukuran JAR penting (misalnya dalam kasus applet), seseorang juga dapat secara langsung menggunakan httpmime dengan java.net.HttpURLConnection daripada HttpClient.
Kode:
Ketergantungan di pom.xml:
sumber
Gunakan kode ini untuk mengunggah gambar atau file lainnya ke server menggunakan post in multipart.
itu membutuhkan file di bawah ini untuk mengunggah.
perpustakaan berada
httpclient-4.1.2.jar,
httpcore-4.1.2.jar,
httpmime-4.1.2.jar,
httpclient-cache-4.1.2.jar,
commons-codec.jar
dancommons-logging-1.1.1.jar
berada di classpath.sumber
Anda juga dapat menggunakan REST Assured yang dibangun di atas Klien HTTP. Sangat sederhana:
sumber
multiPart("controlName", new File("/somedir/file.bin"))
lihat github.com/rest-assured/rest-assured/wiki/…Berikut adalah solusi yang tidak memerlukan pustaka apa pun.
Rutin ini mengirimkan setiap file di direktori
d:/data/mpf10
keurlToConnect
sumber
httpcomponents-client-4.0.1
bekerja untuk saya. Namun, saya harus menambahkan jar eksternalapache-mime4j-0.6.jar
( org.apache.james.mime4j ) jikareqEntity.addPart("bin", bin);
tidak, tidak akan dapat dikompilasi. Sekarang bekerja seperti pesona.sumber
Saya menemukan contoh ini di Panduan Memulai Cepat Apache . Ini untuk versi 4.5:
sumber
Kami memiliki implementasi java murni dari pengiriman formulir multipart tanpa menggunakan dependensi eksternal atau library apa pun di luar jdk. Lihat https://github.com/atulsm/https-multipart-purejava/blob/master/src/main/java/com/atul/MultipartPure.java
sumber
Kode saya memposting multipartFile ke server.
sumber