クライアントアプリケーションの作成
Ktorにはマルチプラットフォームの非同期HTTPクライアントが搭載されており、
このチュートリアルでは、リクエストを送信してレスポンスを出力する最初のKtorクライアントアプリケーションを作成する方法を示します。
前提条件
このチュートリアルを開始する前に、 IntelliJ IDEA Community または Ultimate をインストールしてください。
新しいプロジェクトの作成
既存のプロジェクトでKtorクライアントを手動で
新しいKotlinプロジェクトを作成するには、 IntelliJ IDEA を開き、以下の手順に従ってください。
ようこそ画面で、新規プロジェクトをクリックします。
または、メインメニューからファイル | 新規 | プロジェクトを選択します。
新規プロジェクトウィザードで、左側のリストからKotlinを選択します。
右側のペインで、以下の設定を指定します。
名前 : プロジェクト名を指定します。
場所 : プロジェクトのディレクトリを指定します。
ビルドシステム : Gradleが選択されていることを確認します。
Gradle DSL : Kotlinを選択します。
サンプルコードを追加 : 生成されたプロジェクトにサンプルコードを含めるには、このオプションを選択します。
作成をクリックし、IntelliJ IDEAがプロジェクトを生成して依存関係をインストールするまで待ちます。
依存関係の追加
Ktorクライアントに必要な依存関係を追加しましょう。
gradle.propertiesファイルを開き、Ktorのバージョンを指定するために次の行を追加します。
kotlinNOTE
KtorのEAPバージョンを使用するには、Spaceリポジトリを追加する必要があります。
build.gradle.ktsファイルを開き、次のアーティファクトを依存関係ブロックに追加します。
kotlinktor-client-core
は、主要なクライアント機能を提供するコア依存関係です。ktor-client-cio
は、ネットワークリクエストを処理するエンジンの依存関係です。ネットワークリクエストを処理するエンジンについて学びます。
新しく追加された依存関係をインストールするには、build.gradle.ktsファイルの右上にあるGradleの変更を読み込むアイコンをクリックします。
クライアントの作成
クライアントの実装を追加するには、src/main/kotlinに移動し、以下の手順に従ってください。
Main.ktファイルを開き、既存のコードを次の実装に置き換えます。
kotlinKtorでは、クライアントはHttpClientクラスで表されます。
HttpClient.get()
メソッドを使用してGETリクエストを行います。リクエストの作成方法や、リクエストURL、HTTPメソッド、ヘッダー、リクエスト本文など、さまざまなリクエストパラメータの指定方法を学びます。レスポンスはレスポンスの受信方法、レスポンス本文の取得方法、レスポンスパラメータの取得方法を学びます。HttpResponse
クラスオブジェクトとして受信されます。kotlin上記のコードを追加すると、IDEは
get()
関数に対して次のエラーを表示します。'get' 停止関数はコルーチンまたは別の停止関数からのみ呼び出す必要があります。これを修正するには、
main()
関数を停止関数にする必要があります。IntelliJ IDEAで、定義の横にある赤い電球をクリックし、メインを停止にするを選択します。
println()
関数を使用してサーバーが返したステータスコードを出力し、close()
関数を使用してストリームを閉じ、それに関連付けられたリソースを解放します。 Main.ktファイルは次のようになります。kotlin
アプリケーションの実行
アプリケーションを実行するには、Main.ktファイルに移動し、以下の手順に従ってください。
IntelliJ IDEAで、
main()
関数の横にあるガターアイコンをクリックし、「MainKt」を実行を選択します。- IntelliJ IDEAがアプリケーションを実行するまで待ちます。
IDEの下部にある実行ペインに出力が表示されます。
サーバーは
200 OK
メッセージで応答しますが、SLF4JがStaticLoggerBinder
クラスを見つけられず、デフォルトで何もしない(NOP)ロガー実装になることを示すエラーメッセージも表示されます。これは実質的にロギングが無効になっていることを意味します。これで動作するクライアントアプリケーションが完成しました。ただし、この警告を修正し、ロギングを使用してHTTP呼び出しをデバッグできるようにするには、追加の手順が必要です。
ロギングの有効化
KtorはJVM上のロギングにSLF4J抽象化レイヤーを使用するため、ロギングを有効にするには、Logbackのようなロギングフレームワークを提供する必要があります。
gradle.propertiesファイルで、ロギングフレームワークのバージョンを指定します。
kotlinbuild.gradle.ktsファイルを開き、次のアーティファクトを依存関係ブロックに追加します。
kotlin- 新しく追加された依存関係をインストールするには、Gradleの変更を読み込むアイコンをクリックします。
IntelliJ IDEAで、再実行ボタン(
)をクリックしてアプリケーションを再起動します。
エラーは表示されなくなりますが、IDEの下部にある実行ペインには同じ
200 OK
メッセージが表示されます。これでロギングが有効になりました。ログを表示するには、ロギング設定を追加する必要があります。
src/main/resourcesに移動し、次の実装で新しいlogback.xmlファイルを作成します。
xmlIntelliJ IDEAで、再実行ボタン(
)をクリックしてアプリケーションを再起動します。
実行ペイン内の出力されたレスポンスの上にトレースログが表示されるはずです。
TIP
Ktorは、