Skip to content

クライアントアプリケーションの作成

Ktorにはマルチプラットフォームの非同期HTTPクライアントが搭載されており、

リクエストを行う
リクエストの作成方法や、リクエストURL、HTTPメソッド、ヘッダー、リクエスト本文など、さまざまなリクエストパラメータの指定方法を学びます。
ことや、
レスポンスを処理する
レスポンスの受信方法、レスポンス本文の取得方法、レスポンスパラメータの取得方法を学びます。
ことができます。また、
プラグイン
ロギング、シリアライゼーション、認証など、共通機能を提供するプラグインについて理解を深めます。
(例:
認証
Authプラグインは、クライアントアプリケーションの認証と認可を処理します。
JSONシリアライゼーション
ContentNegotiationプラグインには、クライアントとサーバー間のメディアタイプのネゴシエート、およびリクエストの送信時とレスポンスの受信時に特定の形式でコンテンツをシリアライズ/デシリアライズするという2つの主要な目的があります。
)で機能を拡張することも可能です。

このチュートリアルでは、リクエストを送信してレスポンスを出力する最初のKtorクライアントアプリケーションを作成する方法を示します。

前提条件

このチュートリアルを開始する前に、 IntelliJ IDEA Community または Ultimate をインストールしてください

新しいプロジェクトの作成

既存のプロジェクトでKtorクライアントを手動で

作成および構成
Ktorクライアントの作成と構成方法について学びます。
することもできますが、IntelliJ IDEAにバンドルされているKotlinプラグインを使用して新規プロジェクトを生成するのが、ゼロから始める便利な方法です。

新しいKotlinプロジェクトを作成するには、 IntelliJ IDEA を開き、以下の手順に従ってください。

  1. ようこそ画面で、新規プロジェクトをクリックします。

    または、メインメニューからファイル | 新規 | プロジェクトを選択します。

  2. 新規プロジェクトウィザードで、左側のリストからKotlinを選択します。

  3. 右側のペインで、以下の設定を指定します。

    IntelliJ IDEAの新規Kotlinプロジェクトウィンドウ
    • 名前 : プロジェクト名を指定します。

    • 場所 : プロジェクトのディレクトリを指定します。

    • ビルドシステム : Gradleが選択されていることを確認します。

    • Gradle DSL : Kotlinを選択します。

    • サンプルコードを追加 : 生成されたプロジェクトにサンプルコードを含めるには、このオプションを選択します。

  4. 作成をクリックし、IntelliJ IDEAがプロジェクトを生成して依存関係をインストールするまで待ちます。

依存関係の追加

Ktorクライアントに必要な依存関係を追加しましょう。

  1. gradle.propertiesファイルを開き、Ktorのバージョンを指定するために次の行を追加します。

    kotlin

    NOTE

    KtorのEAPバージョンを使用するには、Spaceリポジトリを追加する必要があります。

  2. build.gradle.ktsファイルを開き、次のアーティファクトを依存関係ブロックに追加します。

    kotlin
    • ktor-client-coreは、主要なクライアント機能を提供するコア依存関係です。
    • ktor-client-cioは、ネットワークリクエストを処理する
      エンジン
      ネットワークリクエストを処理するエンジンについて学びます。
      の依存関係です。
  3. 新しく追加された依存関係をインストールするには、build.gradle.ktsファイルの右上にあるGradleの変更を読み込むアイコンをクリックします。

    Gradleの変更を読み込む

クライアントの作成

クライアントの実装を追加するには、src/main/kotlinに移動し、以下の手順に従ってください。

  1. Main.ktファイルを開き、既存のコードを次の実装に置き換えます。

    kotlin

    Ktorでは、クライアントはHttpClientクラスで表されます。

  2. HttpClient.get()メソッドを使用して

    GETリクエスト
    リクエストの作成方法や、リクエストURL、HTTPメソッド、ヘッダー、リクエスト本文など、さまざまなリクエストパラメータの指定方法を学びます。
    を行います。
    レスポンス
    レスポンスの受信方法、レスポンス本文の取得方法、レスポンスパラメータの取得方法を学びます。
    HttpResponseクラスオブジェクトとして受信されます。

    kotlin

    上記のコードを追加すると、IDEはget()関数に対して次のエラーを表示します。'get' 停止関数はコルーチンまたは別の停止関数からのみ呼び出す必要があります

    停止関数のエラー

    これを修正するには、main()関数を停止関数にする必要があります。

    TIP

    suspend関数の呼び出しについて詳しくは、コルーチンの基本を参照してください。
  3. IntelliJ IDEAで、定義の横にある赤い電球をクリックし、メインを停止にするを選択します。

    メインを停止にする
  4. println()関数を使用してサーバーが返したステータスコードを出力し、close()関数を使用してストリームを閉じ、それに関連付けられたリソースを解放します。 Main.ktファイルは次のようになります。

    kotlin

アプリケーションの実行

アプリケーションを実行するには、Main.ktファイルに移動し、以下の手順に従ってください。

  1. IntelliJ IDEAで、main()関数の横にあるガターアイコンをクリックし、「MainKt」を実行を選択します。

    アプリケーションの実行
  2. IntelliJ IDEAがアプリケーションを実行するまで待ちます。
  3. IDEの下部にある実行ペインに出力が表示されます。

    サーバーレスポンス

    サーバーは200 OKメッセージで応答しますが、SLF4JがStaticLoggerBinderクラスを見つけられず、デフォルトで何もしない(NOP)ロガー実装になることを示すエラーメッセージも表示されます。これは実質的にロギングが無効になっていることを意味します。

    これで動作するクライアントアプリケーションが完成しました。ただし、この警告を修正し、ロギングを使用してHTTP呼び出しをデバッグできるようにするには、追加の手順が必要です。

ロギングの有効化

KtorはJVM上のロギングにSLF4J抽象化レイヤーを使用するため、ロギングを有効にするには、Logbackのようなロギングフレームワークを提供する必要があります。

  1. gradle.propertiesファイルで、ロギングフレームワークのバージョンを指定します。

    kotlin
  2. build.gradle.ktsファイルを開き、次のアーティファクトを依存関係ブロックに追加します。

    kotlin
  3. 新しく追加された依存関係をインストールするには、Gradleの変更を読み込むアイコンをクリックします。
  4. IntelliJ IDEAで、再実行ボタン(intelliJ IDEA rerun icon)をクリックしてアプリケーションを再起動します。

  5. エラーは表示されなくなりますが、IDEの下部にある実行ペインには同じ200 OKメッセージが表示されます。

    サーバーレスポンス

    これでロギングが有効になりました。ログを表示するには、ロギング設定を追加する必要があります。

  6. src/main/resourcesに移動し、次の実装で新しいlogback.xmlファイルを作成します。

    xml
  7. IntelliJ IDEAで、再実行ボタン(intelliJ IDEA rerun icon)をクリックしてアプリケーションを再起動します。

  8. 実行ペイン内の出力されたレスポンスの上にトレースログが表示されるはずです。

    サーバーレスポンス

TIP

Ktorは、
Logging
必要な依存関係: io.ktor:ktor-client-logging コード例: tutorial-client-get-started
プラグインを介してHTTP呼び出しのログを追加するシンプルで簡単な方法を提供します。一方、設定ファイルを追加することで、複雑なアプリケーションでのロギング動作を細かく調整できます。

次のステップ

この構成をよりよく理解し拡張するには、

Ktorクライアントの作成と構成
Ktorクライアントの作成と構成方法について学びます。
方法を調べてみてください。