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

如何使用 HttpClient 在 Java 中發出多部分/表單資料 POST 請求?

Mary-Kate Olsen
發布: 2024-12-16 11:34:16
原創
839 人瀏覽過

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

使用Java 發出多部分錶單資料POST 請求

Apache Commons HttpClient 版本4.0 的出現消除了執行多部分/表單資料POST 請求的能力在3.x版本中是可能的。 HttpClient 團隊解釋說,多部分功能超出了他們的核心活動範圍,並建議尋找替代庫。

尋找合適的 Java 函式庫

問題是哪個Java 函式庫提供多部分/表單資料 POST 請求功能。 HttpClient 4.x 就是這樣一個函式庫,它為發出這些請求提供了全面的解決方案。

更新了 HttpClient 4.3 代碼

使用 HttpClient 版本 4.3 及更高版本,API已更新並且某些類別已被棄用。以下程式碼片段說明了製作多部分文件貼文的修訂方法:

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

// This attaches 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);
HttpEntity responseEntity = response.getEntity();
登入後複製

已棄用的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);
HttpEntity resEntity = response.getEntity();
登入後複製

使用這些庫,開發人員可以無縫建立能夠發出多部分/表單資料POST 請求的HTTP 用戶端,使他們能夠與需要此類請求的Web 服務和 API 進行互動請求格式。

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

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