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 中国語 Web サイトの他の関連記事を参照してください。