マルチプラットフォーム
コード例: client-mpp
Ktor HTTPクライアントはマルチプラットフォームプロジェクトで使用でき、以下のプラットフォームをサポートしています:
依存関係の追加
プロジェクトでKtor HTTPクライアントを使用するには、少なくとも2つの依存関係を追加する必要があります:クライアントの依存関係とエンジンの依存関係です。マルチプラットフォームプロジェクトの場合、これらの依存関係を以下のように追加します:
共通コードでKtorクライアントを使用するには、
build.gradleまたはbuild.gradle.ktsファイルのcommonMainソースセットにktor-client-coreへの依存関係を追加します:KotlinGroovy必要なプラットフォームのエンジンの依存関係を、対応するソースセットに追加します。Androidの場合、Androidエンジンへの依存関係を
androidMainソースセットに追加できます:KotlinGroovyiOSの場合、
iosMainにDarwinエンジンの依存関係を追加する必要があります:KotlinGroovy各プラットフォームでサポートされているエンジンを確認するには、エンジンの依存関係を追加するを参照してください。
クライアントの作成
マルチプラットフォームプロジェクトでクライアントを作成するには、プロジェクトの共通コードでHttpClientコンストラクタを呼び出します:
import io.ktor.client.*
val client = HttpClient()このコードスニペットでは、HttpClientコンストラクタはパラメータとしてエンジンを受け取りません。クライアントは、ビルドスクリプトで追加されたアーティファクトに応じて、必要なプラットフォーム用のエンジンを選択します。
特定のプラットフォーム用にエンジン構成を調整する必要がある場合は、対応するエンジンクラスをHttpClientコンストラクタの引数として渡し、engineメソッドを使用してエンジンを構成します。例:
import io.ktor.client.*
import io.ktor.client.engine.android.*
import java.net.Proxy
import java.net.InetSocketAddress
val client = HttpClient(Android) {
engine {
// this: AndroidEngineConfig
connectTimeout = 100_000
socketTimeout = 100_000
proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress("localhost", 8080))
}
}すべてのエンジンタイプの構成方法については、クライアントエンジンから確認できます。
コード例
mpp/client-mppプロジェクトは、マルチプラットフォームアプリケーションでKtorクライアントを使用する方法を示しています。このアプリケーションは、Android、iOS、JavaScript、およびmacosX64の各プラットフォームで動作します。
