建立用戶端應用程式
建立用戶端應用程式
程式碼範例: tutorial-client-get-started
Ktor 包含一個多平台非同步 HTTP client,這讓你可以
在本教學中,我們將向你展示如何建立第一個 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 (暫停函式 'get' 應僅從協同程式或其他暫停函式中呼叫)。
若要修正此問題,你需要將
main()函式設為暫停函式。在 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 中,點擊重新執行按鈕(
)以重新啟動應用程式。
你應該不再看到該錯誤,而是在 IDE 底部的 Run 面板中顯示相同的
200 OK訊息。
至此,你已經啟用了記錄功能。若要開始看到記錄內容,你需要加入記錄配置。
導覽至 src/main/resources 並建立一個新的 logback.xml 檔案,內容實作如下:
xml在 IntelliJ IDEA 中,點擊重新執行按鈕(
)以重新啟動應用程式。
你現在應該能夠在 Run 面板中看到列印出的回應上方出現追蹤(trace)記錄:

TIP
Ktor 透過
