创建客户端应用程序
创建客户端应用程序
Ktor 包含一个多平台异步 HTTP 客户端,允许您
在本教程中,我们将向您展示如何创建第一个发送请求并打印响应的 Ktor 客户端应用程序。
前提条件
在开始本教程之前,请安装 IntelliJ IDEA Community 或 Ultimate。
创建新项目
您可以手动在现有项目中
要创建一个新的 Kotlin 项目,请打开 IntelliJ IDEA 并按照以下步骤操作:
在欢迎界面中,点击 New Project。
或者,从主菜单中选择 File | New | Project。
在 New Project 向导中,从左侧列表中选择 Kotlin。
在右侧窗格中,指定以下设置:

Name :指定项目名称。
Location :指定项目的目录。
Build system :确保已选择 Gradle。
Gradle DSL :选择 Kotlin。
Add sample code :选中此选项可在生成的项目中包含示例代码。
点击 Create 并等待 IntelliJ IDEA 生成项目并安装依赖项。
创建客户端
要添加客户端实现,请导航至 src/main/kotlin 并按照以下步骤操作:
打开 Main.kt 文件并用以下实现替换现有代码:
kotlin在 Ktor 中,客户端由 HttpClient 类表示。
使用
HttpClient.get()方法来发送 GET 请求。了解如何进行请求并指定各种请求参数:请求 URL、HTTP 方法、标头和请求正文。响应将作为了解如何接收响应、获取响应正文以及获取响应参数。HttpResponse类对象接收。kotlin添加上述代码后,IDE 会对
get()函数显示以下错误: Suspend function 'get' should be called only from a coroutine or another suspend function (Suspend 函数 'get' 只能从协程或其他 suspend 函数中调用)。
要修复此错误,您需要使
main()函数成为 suspending。在 IntelliJ IDEA 中,点击定义旁边的灯泡图标并选择 Make main suspend。

使用
println()函数打印服务器返回的状态码,并使用close()函数关闭流并释放与其关联的所有资源。 Main.kt 文件应如下所示:kotlin
运行您的应用程序
要运行您的应用程序,请导航至 Main.kt 文件并按照以下步骤操作:
在 IntelliJ IDEA 中,点击
main()函数旁边的装订区域图标,然后选择 Run 'MainKt'。
- 等待 IntelliJ IDEA 运行应用程序。
您将在 IDE 底部的 Run 窗格中看到显示的输出。

虽然服务器返回了
200 OK消息,但您还会看到一条错误消息,指出 SLF4J 无法定位StaticLoggerBinder类,默认使用无操作 (NOP) 日志记录器实现。这实际上意味着日志记录已被禁用。您现在已经拥有了一个可以运行的客户端应用程序。但是,要修复此警告并能够通过日志调试 HTTP 调用,还需要执行额外步骤。
启用日志
由于 Ktor 在 JVM 上使用 SLF4J 抽象层进行日志记录,要启用日志记录,您需要提供一个日志框架,例如 Logback。
在 gradle.properties 文件中,指定日志框架的版本:
kotlin打开 build.gradle.kts 文件并将以下构件添加到 dependencies 块中:
kotlin- 点击 Load Gradle Changes 图标以安装新添加的依赖项。
在 IntelliJ IDEA 中,点击重新运行按钮(
)以重启应用程序。
您应该不再看到错误,但同样的
200 OK消息仍将显示在 IDE 底部的 Run 窗格中。
至此,您已启用了日志功能。要开始看到日志,您需要添加日志配置。
导航至 src/main/resources 并创建一个新的 logback.xml 文件,其内容如下:
xml在 IntelliJ IDEA 中,点击重新运行按钮(
)以重启应用程序。
您现在应该能够在 Run 窗格中打印的响应上方看到跟踪日志:

TIP
Ktor 通过
