问题标签 [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.
kotlin - Ktor:如何在路由处理程序中检查身份验证?
我正在使用 ktor v0.9.2,并且我想根据用户是否经过身份验证,为同一路由发送不同的内容。
我遇到的问题是我无法访问authenticate { }
块外的主体。
我的设置是这样的:
该/protected
路线工作正常,但在/
路线中,主体始终为空。我认为这是一些管道的事情,但我有点迷茫。有人可以提供一些见解吗?谢谢!
kotlin - Hoverfly Ktor 客户端 Apache Kotlin
我尝试使用 Hoverfly 进行单元测试来模拟外部 API。
当我将 Apache 客户端与 ktor 一起使用时,它不起作用。但是对于像 khttp 这样的另一个客户端,它可以工作。任何想法为什么?
kotlin - Ktor - 静态内容路由
我很想更好地了解 Ktor 如何处理静态内容的路由。我的静态文件夹(工作目录)中有以下层次结构:
我愿意为他们所有人服务。所以我直接在以下代码中使用了这段代码routing
:
效果很好,但问题是它正在处理所有请求,包括我的小请求get
:
一般来说,在 Ktor 中处理静态内容的最佳方法是什么?
谢谢
kotlin - 如何在 Ktor (Kotlin) 中管道的各个部分之间传递数据
我正在构建一个 API 并intercept(ApplicationCallPipeline.Call){}
用于在每次路由执行之前运行一些逻辑。我需要将数据从拦截()方法传递给被调用的路由,并通过call.attributes.put()
在拦截()中使用来设置数据,如下所示:
val userKey= AttributeKey<User>("userK")
call.attributes.put(userKey, userData)
并使用检索userDatacall.attributes[userKey]
。发生的情况是,call.attributes[userKey]
这只适用于我设置了属性的拦截()方法。它在我需要它的路线上不起作用。它把我扔了
java.lang.IllegalStateException: No instance for key AttributeKey: userK
我想知道是否以正确的方式做事
kotlin - 如何在 Ktor 中接收 JSON 对象?
我定义了数据类,配置了 gson 并创建了 rout 来处理 post 请求,如下所示:
以下 JSON 在 POST 请求中发送
输出显示所有空值。
从 call.request.receiveChannel() 读取数据确实显示正确的 JSON。所以我正在接收数据,但 call.receive() 似乎没有产生预期的结果。
手动获取 JSON 并尝试按如下方式创建 PurchaseOrder 但没有运气:
kotlin - Ktor 测试引擎 - 日志记录
我正在使用 ktor 测试引擎运行单元测试,并且在本地一切都很完美。但是,一旦我在 Travis 上部署,测试就会失败,而且测试引擎似乎运行不正常:
不幸的是,在跟踪模式下没有足够的信息。( <logger name="io.ktor.server.testing" level="TRACE"/>
)
您知道我们如何激活更多日志进行调查吗?或者如果你有任何其他的想法来解决它?
如果你告诉我 Travis 没有过时,不推荐,我也可以换。
谢谢
android - Ktor api 不会改变和刷新
我正在使用 ktor 使用 kotlin 创建 rest api,但是当我更改 api 并再次运行时,响应不会改变。
这是我的代码
第一次运行它时工作正确并显示在 localhost:8080
你好
但如果我改变
call.respondText("Hi", ContentType.Text.Plain)
至
call.respondText("Hello", ContentType.Text.Plain)
并再次运行它响应没有变化和钢在 localhost:8080 中显示Hi
更新
如果我关闭 android studio 并再次打开它并运行它的工作并显示Hello 但如果我再次更改任何内容都不会改变
我不知道为什么会这样。
ktor - KTOR:如何在呼叫处理之前找到位置信息?
我做了一个自定义功能,应该检查用户使用请求的权限。我可以监控请求 LocationInfo 吗?可以这样看吗?
那是我的功能代码:
你怎么看,我正在使用具有权限的 UserRights 数据类。“accesTo” - 是用户可以使用的位置名称列表(格式可以更改)。功能必须在请求处理之前检查“accesTo”列表中包含的位置名称。
谢谢你的帮助!
UPD:位置代码:
kotlin - 在 Ktor 0.9.3 中导入另一个配置文件会引发异常
在 Ktor 0.9.3 应用程序中,我希望.conf
为不同的环境提供不同的文件,我在其中扩展了一个主.conf
文件。但是,我收到以下异常:
这是我的application.conf
文件:
以及我想使用的扩展它:
任何想法出了什么问题以及如何解决它?
kotlin - 获取 Ktor http 请求的内容
在路由功能之前,如何使 Ktor 功能从 ApplicationCall 上下文中获取内容?主要目标是获取而不是消费,以便所有下一个拦截器都可以使用它。
如果我们要这样做:
或者像这样
我们将进行下一步:
主要思想是在路由功能处理之前记录请求内容(如果它是 Json 或 UrlEncoded),并记录每个响应内容。