[解決済み] JAVAで非同期HTTPリクエストを作成するには?
2023-05-13 06:23:26
質問
私はJavaにかなり慣れていないので、これは一部の人にとって明白に思えるかもしれません。私はActionScriptでたくさん仕事をしてきました。これは非常にイベントベースで、私はそれが大好きです。最近、POST リクエストを行う小さな Java コードを書こうとしましたが、それが同期リクエストであるため、コードの実行はリクエストが完了するか、タイムアウトまたはエラーが表示されるまで待機するという問題に直面しました。
コードが実行を継続し、HTTP リクエストが完了したときにコールバックが呼び出される、非同期リクエストを作成するにはどうしたらよいでしょうか。私はスレッドをちらっと見ましたが、それはやりすぎだと思います。
どのように解決するのですか?
java11 では、新しい HTTP api が提供されていることに注意してください。 HttpClient を使用した完全な非同期操作をサポートするようになり、Java の 補完可能な未来 .
また、同期バージョンもサポートしており、以下のような呼び出しが可能です。 を送る のような呼び出しもサポートしており、これは同期的です。 sendAsync で、これは非同期です。
非同期リクエストの例(apidocから引用)。
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com/"))
.timeout(Duration.ofMinutes(2))
.header("Content-Type", "application/json")
.POST(BodyPublishers.ofFile(Paths.get("file.json")))
.build();
client.sendAsync(request, BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println);
関連
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
switch case文のcaseの後の列挙定数は列挙型なし
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] HTTP POST Web リクエストの作成方法
-
[解決済み] どうすればjQueryに非同期ではなく、同期のAjaxリクエストを実行させることができますか?
-
[解決済み] node.jsでHTTP POSTリクエストはどのように行われるのですか?
最新
-
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は、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
ApplicationContextの起動エラーです。条件レポートを表示するには、アプリケーションを'de'で再実行します。
-
Javaがテキストファイルを読み込む
-
API の戻り値を処理するために ResponseEntity を使用する
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
git pull appears現在のブランチに対するトラッキング情報がありません。
-
Java の double データ型における 0.0 と -0.0 の問題
-
アクセス制限の解決方法: ---- in Java
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法