Rumah > Java > javaTutorial > Bagaimana untuk Membuat Permintaan POST Berbilang Bahagian/Borang-Data di Java?

Bagaimana untuk Membuat Permintaan POST Berbilang Bahagian/Borang-Data di Java?

Susan Sarandon
Lepaskan: 2024-12-09 14:35:19
asal
306 orang telah melayarinya

How to Make Multipart/Form-Data POST Requests in Java?

Membuat Permintaan POST Berbilang Bahagian/Data dalam Java

Pengekodan berbilang bahagian/borang-data HTTP biasanya digunakan untuk muat naik fail, membenarkan pelanggan menghantar kedua-dua teks dan data binari dalam satu permintaan. Walaupun Apache Commons HttpClient 3.x menyokong fungsi ini, ia telah dialih keluar dalam versi 4.0. Artikel ini meneroka perpustakaan Java alternatif yang mendayakan permintaan POST berbilang bahagian/data borang.

Walaupun menghubungi projek HttpClient, tidak ada usaha yang diketahui untuk melaksanakan semula sokongan berbilang bahagian. Oleh itu, pembangun mesti mencari penyelesaian alternatif untuk keperluan data berbilang bahagian/bentuk mereka.

Penyelesaian

HttpClient 4.x, versi stabil semasa, menawarkan yang lebih moden API untuk mengendalikan permintaan berbilang bahagian. Berikut ialah contoh menggunakan API yang dikemas kini:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost("...");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("field1", "yes", ContentType.TEXT_PLAIN);
File f = new File("[/path/to/upload]");
builder.addBinaryBody(
    "file",
    new FileInputStream(f),
    ContentType.APPLICATION_OCTET_STREAM,
    f.getName()
);
HttpEntity multipart = builder.build();
uploadFile.setEntity(multipart);
CloseableHttpResponse response = httpClient.execute(uploadFile);
HttpEntity responseEntity = response.getEntity();
Salin selepas log masuk

Untuk pembangun yang masih menggunakan HttpClient 4.0 (tidak disyorkan), coretan kod berikut menggunakan API yang ditamatkan:

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
FileBody bin = new FileBody(new File(fileName));
StringBody comment = new StringBody("Filename: " + fileName);
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("bin", bin);
reqEntity.addPart("comment", comment);
httppost.setEntity(reqEntity);
HttpResponse response = httpclient.execute(httppost);
HttpEntity resEntity = response.getEntity();
Salin selepas log masuk

Perpustakaan Java lain yang menyokong permintaan POST berbilang bahagian/data borang termasuk:

  • Komponen HTTP Apache HttpComponents-Client: Pustaka klien HTTP moden yang selamat untuk benang
  • API Klien Jersey: Perpustakaan pelanggan perkhidmatan web RESTful tahap tinggi yang mudah digunakan
  • Rangka Kerja Grizzly REST: Rangka kerja untuk membina perkhidmatan web RESTful

Atas ialah kandungan terperinci Bagaimana untuk Membuat Permintaan POST Berbilang Bahagian/Borang-Data di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan