首頁 > Java > java教程 > 如何在 Java 中發送多部分/表單資料 POST 請求?

如何在 Java 中發送多部分/表單資料 POST 請求?

Linda Hamilton
發布: 2024-12-09 11:41:14
原創
580 人瀏覽過

How Can I Send Multipart/Form-Data POST Requests in Java?

使用Apache Commons HttpClient 在Java 中進行多部分/表單資料POST 要求

在HttpClient 版本4.0 之前,可以發送多部分/ form-data POST 請求。然而,這個功能在 4.0 版本中被刪除了。 HttpClient 開發人員認為多部分處理超出了他們的專案範圍。

用於多部分/表單資料POST 請求的替代Java 庫:

儘管缺少多部分HttpClient 4.0 中的支持,多個Java 庫提供了此支持功能:

  • Apache Commons FileUpload: Apache 的專用多部分解析與格式化函式庫。
  • Jersey 用戶端: REST API 用戶端透過其Form 包含多部分支援的框架
  • OkHttp: 一個現代、高效的HTTP 客戶端,內建多部分請求支援。
  • UniRest: 一個輕量級 HTTP 請求庫,具有多部分功能。

使用 HttpClient 的範例實作4.3:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost("...");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("field1", "yes", ContentType.TEXT_PLAIN);

// Attaching the file to the POST:
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);
登入後複製

使用舊版 HttpClient 4.0的範例實作(已棄用):

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);
登入後複製

結論:

雖然HttpClient 4.0 沒有預設支援multipart/form-data POST 請求,替代的Java 函式庫和程式碼片段可以幫助開發人員實現此功能。透過利用這些資源,使用者可以有效地實現處理多部分請求的 HTTP 用戶端,並與 Zoho Writer 的遠端 API 等 Web 服務無縫整合。

以上是如何在 Java 中發送多部分/表單資料 POST 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板