问题标签 [ktor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1532 浏览

kotlin - Ktor 快速启动 HTTP API - 错误应用程序 - 未处理:GET - /snippets

我是 Ktor 的新手,我目前正在使用快速启动http api,但我收到错误:

错误应用程序 - 未处理:GET - /snippets com.fasterxml.jackson.databind.JsonMappingException:kotlin.reflect.jvm.internal.KClassImpl 无法转换为 kotlin.reflect.jvm.internal.KClassImpl(通过引用链:java.util. Collections$Singleton Map["snippets"]->java.util.ArrayList[0])

代码:

如果我改用这个:

它返回:

但现在它使用的是 toString() 而不是 toList(),知道如何让它像使用 toList() 的快速入门一样工作吗?

0 投票
1 回答
676 浏览

tomcat - Ktor 和远程 tomcat 部署

有人在远程 Tomcat 服务器上成功部署了 Ktor 项目吗?

我正在做一个项目,当我在本地部署中尝试测试一切都很好,但是当我尝试生成 .war 并部署在我的远程 tomcat 服务器上时,我在尝试访问 servlet 时总是得到 404。

部署似乎没问题,一切正常,但我无法与我的 servlet 通信。

我已经阅读了很多指南,但所有人都在本地尝试过。

问候

0 投票
2 回答
5898 浏览

android - 多平台项目的 ios 模块中未解决 ktor 依赖项

我有一个针对 iOS 和 Android 的 kotlin-multiplatform 项目。Ktor http 客户端用于通用模块。

一切都适用于 Android 应用程序。但是在使用 iOS lib 构建项目时,我收到以下异常:

...和其他的,说没有一个 ktor 依赖项得到解决。

这是 build.gradle:

以下是来自 common 模块的文件代码,它会产生错误:

0 投票
1 回答
609 浏览

kotlin - Ktor:无法解析 JacksonSerializer

我正在尝试在 Kotlin Multiplatform 项目的 commonMain 模块中设置 ktor http 客户端(如此处所述https://ktor.io/clients/http-client/features/json-feature.html),但无法解析对它的依赖:

摇篮版本:4.7。

这是通用模块的 build.gradle:

0 投票
9 回答
9352 浏览

kotlin - ktor 与 kotlinx 序列化:如何使用 JSON.nonstrict

我正在尝试初始化 Ktor http 客户端并设置 json 序列化。我需要允许JSON.nonstrict对象允许的非严格反序列化。只是不知道如何将此设置应用于序列化程序。

0 投票
1 回答
2641 浏览

rest - 使用 Kotlin 协程的 Guava LoadingCache

我正在使用 GuavaLoading Cache来缓存 HTTP 请求的结果。Kotlin/KTOR 提供了一个基于协程(即非阻塞 HTTP 请求)的HTTP 客户端库。

我的问题是加载缓存不知道suspending 函数。load我传递给加载缓存的函数无法挂起。所以我被迫在runBlocking调用中执行 HTTP 请求,完全消除了非阻塞调用的好处。

我的问题是:有没有更好的方法?你将如何实现协程结果的缓存?

0 投票
2 回答
755 浏览

google-app-engine - Ktor App 部署到 AppEngine 时未调用 Main 方法

问题

Ktor 应用程序的main方法在部署到 AppEngine 时不会被调用。应用程序的主要方法是基于Timer从 API 请求中检索内容并将该信息保存到客户端使用的 Firestore 数据库的逻辑。

此逻辑当前在将Jar部署到 AppEngine 时有效。但是,如果需要端点,使用Ktor实现这一点将节省部署时间并有助于将来证明后端服务。

预期的

一旦将应用程序部署到 AppEngine,就会调用Ktor 应用程序的main方法,类似于在 IntelliJ 中运行应用程序的 main 方法时的调用方式。

实际的

仅在调用应用程序的托管路由后才调用main方法。

IE:https://[yourProjectName].appspot.com

设置

主要方法

构建.gradle

src/main/resources/application.conf

src/main/webapp/WEB-INF/

appengine-web.xml

web.xml

0 投票
0 回答
71 浏览

kotlin - 如何在 WebUI 中渲染 StreamObserver (ktor + freemarker)

如何在 freemarker 中处理 StreamObserver 的输出?我有以下控制器代码以便订阅流频道。

观察者在这里声明:

0 投票
2 回答
3502 浏览

kotlin - 在 Ktor 中发送 application/x-www-form-urlencoded

我不知道如何application/x-www-form-urlencoded POST在 Ktor 中发送请求。我submitForm在 Ktor 的文档中看到了一些助手,但他们没有按预期发送请求。

我想要的是复制这种卷曲线行为:

我的依赖是io.ktor:ktor-client-cio:1.0.0.

0 投票
1 回答
1742 浏览

kotlin - 使用 ktor 将文件上传到电报 bot api

我正在使用kotlinktor为 telegram-bot-api 编写包装器。我有一个问题 - 找不到上传文件的工作方式。

(来自 tg bot api docs
发送文件(照片、贴纸、音频、媒体等)的三种方式:

  1. 如果文件已经存储在 Telegram 服务器的某个位置,则无需重新上传:每个文件对象都有一个 file_id 字段,只需将此 file_id 作为参数传递,而不是上传。以这种方式发送的文件没有限制。
  2. 为 Telegram 提供要发送的文件的 HTTP URL。Telegram 将下载并发送文件。照片的最大大小为 5 MB,其他类型的内容最大为 20 MB。
  3. 使用 multipart/form-data 以通常通过浏览器上传文件的方式发布文件。照片最大 10 MB,其他文件最大 50 MB。

使用第一种和第二种方式我没有任何问题。

现在我有一个丑陋的函数,它向 tg 发出请求并解析答案:

没有文件它可以工作,有文件 - 它不会。(我认为我做错了一切)

使用示例:

我已经在不同的文件上对其进行了测试,我发现:

  1. 如果我在之间发送文件17,9 KiB并且56,6 KiB我从 tg 得到以下错误:Bad Request: wrong URL host

  2. 如果我在两者之间发送文件75,6 KiB并且913,2 KiB我收到错误413 Request Entity Too Large

* 我正在使用sendDocument方法

使用 发送文件的真正方法是什么ktor