ホームページ Java &#&チュートリアル Java API開発におけるHTTPリクエストにApache HttpClientを使用する

Java API開発におけるHTTPリクエストにApache HttpClientを使用する

Jun 18, 2023 am 09:27 AM
httpリクエスト java api apache httpclient

インターネットの継続的な発展に伴い、HTTP プロトコルは現代のネットワーク通信の基礎の 1 つになりました。 Java プログラミングでは、Apache HttpClient ライブラリを使用すると、HTTP リクエスト操作を非常に便利に実行できます。この記事では、Java API 開発で Apache HttpClient を使用して HTTP リクエストを行う方法を紹介します。

  1. 準備

開始する前に、Apache HttpClient ライブラリをダウンロードし、プロジェクトの依存関係として追加する必要があります。 Apache HttpClient は、Maven や Gradle などのツールを通じて参照できるオープン ソースの Java HTTP クライアント ライブラリです。

以下は、Maven を使用して Apache HttpClient を参照する例です:

<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.13</version>
    </dependency>
</dependencies>
ログイン後にコピー

ライブラリを導入した後、HTTP リクエスト操作を開始できます。

  1. GET リクエストの送信

HttpClient を使用した GET リクエストの送信は非常に簡単です。以下は、HttpClient 経由で GET リクエストを送信し、応答コンテンツを出力する方法を示す例です。

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("https://www.baidu.com");
try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);
    }
} catch (IOException e) {
    e.printStackTrace();
}
ログイン後にコピー

上記のコードは、GET リクエストを Baidu に送信し、応答コンテンツを出力します。このコードでは、CloseableHttpClient クライアント インスタンスを作成し、HttpGet オブジェクトを使用して GET リクエストを作成し、リクエストを実行します。レスポンスでエンティティを取得し、文字列に変換して出力します。

  1. POST リクエストを送信する

HttpClient を使用して POST リクエストを送信する場合、UrlEncodedFormEntity オブジェクトまたは MultipartEntityBuilder オブジェクトを使用してリクエスト パラメータを含めることを選択できます。

以下は、UrlEncodedFormEntity オブジェクトの使用例です。

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://www.baidu.com");
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("username", "johndoe"));
params.add(new BasicNameValuePair("password", "password123"));
try {
    httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);
    }
} catch (IOException e) {
    e.printStackTrace();
}
ログイン後にコピー

上記のコードは、POST リクエストを Baidu に送信し、リクエスト本文にパラメータを含めます。この例では、UrlEncodedFormEntity オブジェクトを使用してリクエスト パラメーターを含め、それらを POST リクエストのエンティティとして設定します。レスポンスでエンティティを取得し、文字列に変換して出力します。

  1. ファイルの送信

ファイルを送信する必要がある場合は、MultipartEntityBuilder オブジェクトを使用する必要があります。インクルードされるファイルの例を次に示します。

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("http://localhost:8080/upload");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addBinaryBody("file", new File("example.txt"));
httpPost.setEntity(builder.build());
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);
    }
} catch (IOException e) {
    e.printStackTrace();
}
ログイン後にコピー

上記のコードは、example.txt という名前のファイルを localhost:8080 に転送します。この例では、MultipartEntityBuilder オブジェクトを使用し、ファイルをバイナリ コンテンツとして追加します。レスポンスでエンティティを取得し、文字列に変換して出力します。

  1. リクエスト送信時にヘッダー情報を追加する

リクエストにヘッダー情報を追加する必要がある場合があります。以下はヘッダー情報を追加する例です。

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://www.baidu.com");
httpPost.setHeader("User-Agent", "Mozilla/5.0");
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);
    }
} catch (IOException e) {
    e.printStackTrace();
}
ログイン後にコピー

上記のコードは、GET リクエストを Baidu に送信し、User-Agent ヘッダー情報を追加します。この例では、HttpPost オブジェクトを使用して GET リクエストを作成し、setHeader メソッドを呼び出してヘッダー情報を追加します。レスポンスでエンティティを取得し、文字列に変換して出力します。

  1. リクエスト送信時のタイムアウトの設定

リクエスト送信時に、リクエストのタイムアウトとレスポンスのタイムアウトを設定することもできます。これにより、サーバーからの応答を待機している間にクライアントが無期限にブロックされることがなくなります。タイムアウトの設定例を次に示します。

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://www.baidu.com");
RequestConfig requestConfig = RequestConfig.custom()
    .setConnectTimeout(5000) // 连接超时时间
    .setSocketTimeout(5000) // 响应超时时间
    .build();
httpPost.setConfig(requestConfig);
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);    
    }
} catch (IOException e) {
    e.printStackTrace();
}
ログイン後にコピー

上記のコードは、POST リクエストを Baidu に送信し、接続タイムアウトと応答タイムアウトを 5 秒に設定します。この例では、RequestConfig オブジェクトを使用し、カスタム メソッドを通じて接続タイムアウトと応答タイムアウトを設定します。レスポンスでエンティティを取得し、文字列に変換して出力します。

  1. 概要

Apache HttpClient ライブラリは、Java 開発者が HTTP リクエストを非常に簡単に実行できるようにする便利な API を多数提供します。この記事では、Apache HttpClient を使用して、GET リクエスト、POST リクエスト、ファイルを含むリクエスト、ヘッダー情報を追加するリクエスト、タイムアウトを設定するリクエストを送信する方法について説明します。この記事が、Apache HttpClient を使用する Java 開発者に何らかの助けになれば幸いです。

以上がJava API開発におけるHTTPリクエストにApache HttpClientを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

最初から最後まで: PHP 拡張機能 cURL を使用して HTTP リクエストを行う方法 最初から最後まで: PHP 拡張機能 cURL を使用して HTTP リクエストを行う方法 Jul 29, 2023 pm 05:07 PM

最初から最後まで: HTTP リクエストに php 拡張機能 cURL を使用する方法 はじめに: Web 開発では、多くの場合、サードパーティ API または他のリモート サーバーと通信する必要があります。 cURL を使用して HTTP リクエストを行うのは、一般的で強力な方法です。この記事では、PHP を使用して cURL を拡張して HTTP リクエストを実行する方法を紹介し、いくつかの実用的なコード例を示します。 1. 準備 まず、php に cURL 拡張機能がインストールされていることを確認します。コマンドラインで php-m|grepcurl を実行して確認できます。

Java開発でHTTPリクエストの接続が拒否される問題を解決する方法 Java開発でHTTPリクエストの接続が拒否される問題を解決する方法 Jun 29, 2023 pm 02:29 PM

Java 開発で HTTP リクエストの接続が拒否される問題を解決する方法 Java 開発では、HTTP リクエストの接続が拒否されるという問題によく遭遇します。この問題は、サーバー側でアクセス権が制限されているか、ネットワーク ファイアウォールが HTTP 要求へのアクセスをブロックしているために発生する可能性があります。この問題を解決するには、コードと環境をいくつか調整する必要があります。この記事では、いくつかの一般的な解決策を紹介します。ネットワーク接続とサーバーの状態を確認します。まず、ネットワーク接続が正常であることを確認します。他の Web サイトやサービスにアクセスして確認してください。

原因分析: HTTP リクエスト エラー 504 ゲートウェイ タイムアウト 原因分析: HTTP リクエスト エラー 504 ゲートウェイ タイムアウト Feb 19, 2024 pm 05:12 PM

http リクエスト エラーの理由の簡単な説明: 504GatewayTimeout: ネットワーク通信中、クライアントは HTTP リクエストを送信することでサーバーと対話します。ただし、リクエストの送信プロセス中にエラー メッセージが表示される場合があります。そのうちの 1 つは 504GatewayTimeout エラーです。この記事では、このエラーの原因と解決策について説明します。 504GatewayTimeout エラーとは何ですか?ゲートウェイタイムオ

解決策: HTTP リクエストの処理時のソケット エラー 解決策: HTTP リクエストの処理時のソケット エラー Feb 25, 2024 pm 09:24 PM

http リクエスト エラー: SocketError の解決策 ネットワーク リクエストを行うときに、さまざまなエラーが発生することがよくありますが、その一般的な問題の 1 つが SocketError です。このエラーは、アプリケーションがサーバーとの接続を確立できない場合にスローされます。この記事では、SocketError の一般的な原因と解決策について説明します。まず、Socket とは何かを理解する必要があります。ソケットは、アプリケーションが次のことを可能にする通信プロトコルです。

Golang を使用して HTTP リクエストのクエリ パラメータを設定する Golang を使用して HTTP リクエストのクエリ パラメータを設定する Jun 02, 2024 pm 03:27 PM

Go で HTTP リクエストのクエリ パラメータを設定するには、クエリ パラメータの名前と値をパラメータとして受け入れる http.Request.URL.Query().Set() メソッドを使用できます。具体的な手順は次のとおりです。 新しい HTTP リクエストを作成します。クエリパラメータを設定するには、Query().Set() メソッドを使用します。リクエストをエンコードします。リクエストを実行します。クエリパラメータの値を取得します(オプション)。クエリパラメータを削除します(オプション)。

無料の API インターフェイス Web サイトとは何ですか? 無料の API インターフェイス Web サイトとは何ですか? Jan 05, 2024 am 11:33 AM

無料 API インターフェイス Web サイト: 1. UomgAPI: 100 を超える API インターフェイスを備えた、安定した高速な無料 API サービスを提供するプラットフォーム。 2. free-api: 複数の無料 API インターフェイスを提供します。 3. JSON API: 無料のデータ API インターフェイスを提供します。 AutoNavi Open Platform: 地図関連の API インターフェイスを提供します。 5. 顔認識 Face++: 顔認識関連の API インターフェイスを提供します。 6. スピード データ: さまざまなニーズに適した無料の API インターフェイスを提供します。 7. データの集計など。

Nginx を使用して HTTP リクエストの圧縮と解凍を行う方法 Nginx を使用して HTTP リクエストの圧縮と解凍を行う方法 Aug 02, 2023 am 10:09 AM

Nginx を使用して HTTP リクエストを圧縮および解凍する方法 Nginx は、強力で柔軟な高性能 Web サーバーおよびリバース プロキシ サーバーです。 HTTP リクエストを処理する場合、Nginx が提供する gzip モジュールと Gunzip モジュールを使用してリクエストを圧縮および解凍し、データ送信量を削減し、リクエストの応答速度を向上させることができます。この記事では、Nginx を使用して HTTP リクエストを圧縮および解凍する方法の具体的な手順を紹介し、対応するコード例を示します。 gzipモジュールを構成する

Python HTTP リクエスト最適化ガイド: Web アプリケーションのパフォーマンスを向上させる Python HTTP リクエスト最適化ガイド: Web アプリケーションのパフォーマンスを向上させる Feb 24, 2024 pm 02:40 PM

PythonHttp リクエストのパフォーマンスを最適化することは、Web アプリケーションの速度と応答性を向上させるために重要です。このガイドでは、ネットワーク アプリケーションのパフォーマンスを向上させるために Python HTTP リクエストを最適化するためのヒントとベスト プラクティスをいくつか紹介します。 1. 接続プーリングを使用します。接続プーリングは、HTTP 接続を管理するためのメカニズムです。これにより、接続の作成と破棄のオーバーヘッドが削減され、HTTP リクエストのパフォーマンスが向上します。 Python は、接続プールのサポートが組み込まれたリクエスト ライブラリを提供します。接続プールを有効にするには、Session オブジェクトを作成するときに pool_connections パラメータを渡すだけで済みます。 importrequestssession=リクエスト.セッション(

See all articles