Client Plugin
BOMリムーバー
必要な依存関係: io.ktor:ktor-client-bom-remover
コード例: client-bom-remover
バイトオーダーマーク (BOM) は、Unicodeファイルまたはストリームでエンコードされた文字です。BOMの主な目的は、テキストのストリームエンコーディングと、16ビットおよび32ビットエンコーディングのバイト順を示すことです。
場合によっては、レスポンスボディからBOMを削除する必要があります。例えば、UTF-8エンコーディングではBOMの存在は任意ですが、BOMの処理方法を解釈できないソフトウェアで読み取られた場合に問題が発生することがあります。
Ktorクライアントは、UTF-8、UTF-16 (BE)、UTF-16 (LE)、UTF-32 (BE)、およびUTF-32 (LE) エンコーディングのレスポンスボディからBOMを削除する BOMRemover プラグインを提供しています。
BOMを削除しても、Ktorは
Content-Lengthヘッダーを変更しないため、ヘッダーには初期レスポンスの長さが保持されることに注意してください。
依存関係の追加
BOMRemover を使用するには、ビルドスクリプトに ktor-client-bom-remover アーティファクトを含める必要があります。
Kotlin
Groovy
XML
Ktorクライアントに必要なアーティファクトの詳細については、
クライアントの依存関係の追加
を参照してください。 既存のプロジェクトにクライアントの依存関係を追加する方法を学びます。
BOMRemoverのインストール
BOMRemover をインストールするには、クライアント設定ブロック 内の install 関数に渡します。
kotlin
import io.ktor.client.*
import io.ktor.client.engine.cio.*
import io.ktor.client.plugins.bomremover.*
//...
val client = HttpClient(CIO) {
install(BOMRemover)
}