ホームページ > Java > &#&チュートリアル > Java でマルチパート/フォームデータの POST リクエストを行う方法は?

Java でマルチパート/フォームデータの POST リクエストを行う方法は?

Susan Sarandon
リリース: 2024-12-09 14:35:19
オリジナル
324 人が閲覧しました

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

Java でマルチパート/フォームデータ POST リクエストを作成する

HTTP のマルチパート/フォームデータ エンコーディングはファイルのアップロードによく使用され、クライアントはテキストとフォームの両方を送信できます。バイナリ データを 1 回のリクエストで受け取ります。 Apache Commons HttpClient 3.x ではこの機能がサポートされていましたが、バージョン 4.0 では削除されました。この記事では、マルチパート/フォームデータ POST リクエストを可能にする代替 Java ライブラリについて説明します。

HttpClient プロジェクトに協力しているにもかかわらず、マルチパート サポートを再実装する取り組みは知られていません。そのため、開発者はマルチパート/フォームデータのニーズに対応する代替ソリューションを探す必要があります。

ソリューション

現在の安定バージョンである HttpClient 4.x は、より最新のソリューションを提供します。マルチパートリクエストを処理するための API。更新された API を使用した例を次に示します。

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost("...");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("field1", "yes", ContentType.TEXT_PLAIN);
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 を使用している開発者 (非推奨) の場合、次のコード スニペットは非推奨の API を使用しています。

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();
ログイン後にコピー

その他の Java ライブラリマルチパート/フォームデータ POST リクエストのサポートには以下が含まれます:

  • Apache HTTPコンポーネント HttpComponents-Client: 最新のスレッドセーフな HTTP クライアント ライブラリ
  • Jersey Client API: 高レベルで使いやすい RESTful Web サービス クライアント ライブラリ
  • Grizzly REST フレームワーク: A RESTful Web サービスを構築するためのフレームワーク

以上がJava でマルチパート/フォームデータの POST リクエストを行う方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート