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();
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();
Perpustakaan Java lain yang menyokong permintaan POST berbilang bahagian/data borang termasuk:
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!