[解決済み] Apache HttpClient によるマルチパートフォームの投稿
2023-08-09 06:55:56
質問
私はHttpClientについてかなり未熟で、ドキュメントの不足(またはあからさまに不正確な)には非常にいらいらさせられます。 私はApache Http Clientで次のポスト(以下にリストされている)を実装しようとしていますが、実際にそれを行う方法が全くわかりません。 私は来週までドキュメントに埋没するつもりですが、おそらくより経験豊富なHttpClientのコーダーは、より早く私に答えを与えることができるでしょう。
投稿する
Content-Type: multipart/form-data; boundary=---------------------------1294919323195
Content-Length: 502
-----------------------------1294919323195
Content-Disposition: form-data; name="number"
5555555555
-----------------------------1294919323195
Content-Disposition: form-data; name="clip"
rickroll
-----------------------------1294919323195
Content-Disposition: form-data; name="upload_file"; filename=""
Content-Type: application/octet-stream
-----------------------------1294919323195
Content-Disposition: form-data; name="tos"
agree
-----------------------------1294919323195--
どのように解決するのですか?
のMultipartEntityBuilderを使用します。 HttpMime ライブラリ を使用して、必要なリクエストを実行します。
私のプロジェクトでは、このように行っています。
HttpEntity entity = MultipartEntityBuilder
.create()
.addTextBody("number", "5555555555")
.addTextBody("clip", "rickroll")
.addBinaryBody("upload_file", new File(filePath), ContentType.APPLICATION_OCTET_STREAM, "filename")
.addTextBody("tos", "agree")
.build();
HttpPost httpPost = new HttpPost("http://some-web-site");
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
HttpEntity result = response.getEntity();
これが助けになることを願っています。
(この記事を更新し、非推奨の MultipartEntity の代わりに MultipartEntityBuilder を使用し、@mtomy のコードを例として使用します)
関連
-
実行中にEclipseがポップアップする A Java Exception has occurred
-
undefined[sonar] sonar:デフォルトのスキャンルール
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
ajax コミット リソースの読み込みに失敗しました: サーバーはステータス 400 で応答しました ()
-
Java基礎 - マッピングとQ/A
-
linux ant Resolve error: main class not found or couldn't be loaded org.apache.tools.ant.launcher.
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。
-
[解決済み】enctype='multipart/form-data'とはどういう意味ですか?
-
[解決済み】Apache Camelとは一体何ですか?
-
[解決済み] HTTP POST multipart/form-dataでファイルをサーバーにアップロードするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
Java Notes 005_この行に複数のマーカーがある - キーを変数に解決できない - シンタックスエラー、ins
-
java マイクロソフト払い戻し予期せぬサーバーからのファイルの終了
-
アノテーション「@Retention」の役割
-
eclipse にリソースリーク:'in' が閉じない
-
linux ant Resolve error: main class not found or couldn't be loaded org.apache.tools.ant.launcher.