Java 中的multipart/form-data POST 請求
在Java 中,使用Apache Commons 創建multipart/form-data POST 請求曾經是可行的HttpClient 版本3.x。但是,此功能在版本 4.0 中已停止。
HttpClient 開發人員透過聲明多部分處理超出了庫的核心 HTTP 功能範圍來證明此刪除的合理性。他們建議尋找其他項目維護的多部分程式碼,但承認不知道任何此類項目。
使用 HttpClient 4.x 的解決方法
儘管刪除了專用的多部分支持,有一些解決方法可以使用 HttpClient 4.x 創建多部分請求。以下是範例:
CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost uploadFile = new HttpPost("..."); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.addTextBody("field1", "yes", ContentType.TEXT_PLAIN); // Attach 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.3 開始,某些類別已被棄用。更新後的API使用請參考官方文件。
以上是Apache HttpClient 3.x 刪除多部分支援後,如何在 Java 中建立多部分/表單資料 POST 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!