常見問題
常見問題
CIO 代表什麼意思?
CIO代表 基於協同程式的I/O (Coroutine-based I/O)。 通常我們將其稱為一種使用Kotlin和協同程式來實作IETF RFC或其他協定邏輯的引擎,且不依賴外部基於JVM的程式庫。
Ktor 是否提供擷取 IPC 訊號(例如 SIGTERM 或 SIGINT)的方法,以便平滑地處理伺服器關閉?
如果您正在執行EngineMain,它將會被自動處理。 否則,您需要手動處理。 您可以使用JVM提供的Runtime.getRuntime().addShutdownHook設施。
在代理伺服器後方如何獲取用戶端 IP?
如果代理伺服器提供了正確的標頭,且已安裝
call.request.origin屬性會提供關於原始呼叫者(代理伺服器)的連線資訊。 我該如何測試 main 分支上最新的提交?
您可以從jetbrains.space獲取Ktor每晚建置版本。 請從早期體驗計劃了解更多資訊。
我該如何確認我正在使用的是哪個版本的 Ktor?
您可以使用
Server回應標頭,例如: 我的路由未被執行。我該如何偵錯?
Ktor提供了一種追蹤機制來協助排查路由決策問題。 請參閱追蹤路由章節。
如何解決「No configuration setting found for key ktor」錯誤?
這表示Ktor無法找到
resources資料夾中存在設定檔,且該resources資料夾已被正確標記。 建議使用Ktor專案產生器或IntelliJ IDEA Ultimate 的 Ktor 外掛程式來建立專案,以獲得一個可運作的專案基底。如需更多資訊,請參閱為什麼「CURL -I」會傳回「404 Not Found」?
CURL -I是CURL --head的別名,用於執行HEAD請求。 預設情況下,Ktor不會為GET處理常式處理HEAD請求。 若要啟用此功能,請安裝
如何解決使用「HttpsRedirect」外掛程式時的無限重定向問題?
最可能的原因是您的後端位於反向代理或負載平衡器之後,而該中間設備正向您的後端發送一般的HTTP請求,因此Ktor後端內的HttpsRedirect外掛程式認為這是一個一般的HTTP請求,並以重定向作為回應。
通常,反向代理會發送一些描述原始請求的標頭(例如原本是否為HTTPS或原始IP位址),而
如何在 Windows 上安裝「curl」以便在 Kotlin/Native 上使用對應的引擎?
Curl用戶端引擎需要安裝 curl程式庫。 在Windows上,您可以考慮使用MinGW/MSYS2的curl二進位檔。
按照MinGW/MSYS2中的說明安裝MinGW/MSYS2。
使用以下指令安裝
libcurl:shell如果您將MinGW/MSYS2安裝在預設位置,請將 C:\msys64\mingw64\bin\ 新增至
PATH環境變數中。
如何解決「NoTransformationFoundException」?
NoTransformationFoundException 代表無法為接收的主體找到合適的轉換,無法將結果型別轉換為用戶端預期的型別。
檢查請求中的
Accept標頭是否指定了所需的內容類型,以及伺服器回應中的Content-Type標頭是否與用戶端預期的型別相符。為您正在處理的特定內容類型註冊必要的內容轉換。
您可以在用戶端使用ContentNegotiation 外掛程式。 此外掛程式允許您指定如何針對不同的內容類型進行序列化和反序列化資料。
kotlin確保您安裝了所有需要的外掛程式。可能缺少的功能包括:
