Apache Commons HttpClient を使用した Java でのマルチパート/フォームデータ POST リクエスト
HttpClient のバージョン 4.0 より前では、マルチパートを送信することができました。 /form-data POST リクエスト。ただし、この機能はバージョン 4.0 で削除されました。 HttpClient 開発者は、マルチパート処理はプロジェクトの範囲外であるとみなしました。
マルチパート/フォームデータ POST リクエスト用の代替 Java ライブラリ:
マルチパートがないにもかかわらずHttpClient 4.0 でのサポート。いくつかの Java ライブラリがこれを提供します。機能:
実装例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 は、デフォルトではマルチパート/フォームデータの POST リクエストをサポートしません。開発者がこの機能を実現するには、代替の Java ライブラリとコード スニペットを使用できます。これらのリソースを活用することで、ユーザーはマルチパートリクエストを処理し、Zoho Writer のリモート API などの Web サービスとシームレスに統合する HTTP クライアントを効果的に実装できます。
以上がJava でマルチパート/フォームデータ POST リクエストを送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。