当前位置: 首页 > 知识库问答 >
问题:

添加挂起时发生冲突的重载

隗和裕
2023-03-14

我有一个工作应用程序,但我想改进一点。方法(“private fun save”),负责保存我需要的信息,我希望使其异步。

但问题是,当我把它改成——“私有挂起fun save”的时候,我要做suspend和override fun拦截方法。但是由于它被覆盖,我得到一个错误:

冲突重载:public open suspend fun intercept(链:Interceptor.chain):com.pocketscout.network中定义的响应。PocketScoutInterceptor,公共抽象趣味拦截(链:Interceptor.chain):在okhttp3.intercepter中定义的响应。

这个问题是否以某种方式解决了?

    class PocketScoutInterceptor(
    private val appContainer: PocketScoutContainer,
) : okhttp3.Interceptor {

    @Throws(IOException::class)
    override fun intercept(chain: okhttp3.Interceptor.Chain): okhttp3.Response {
        val packet = buildPacket(timestamp, duration, request, response, description)

        save(packet)

        return response ?: okhttp3.Response.Builder().build()
    }
    
 

共有1个答案

马寒
2023-03-14

目前 OkHttp3 不支持拦截器的挂起功能。您可以包装保存方法

private suspend fun save(packet: Packet) { // Make suspend
   ...
}

runBlocking { save(packet) } // Call inside intercept

或者全部在里面:

private fun save(packet: Packet) = runBlocking {
   ...
}

使用此代码的风险由您自行承担。

 类似资料:
  • 我正在从国家美术馆的在线目录中检索信息。由于目录的结构,我无法通过提取和跟踪条目之间的链接来导航。幸运的是,集合中的每个对象都有一个可预测的url。我希望我的爬行器通过生成开始URL来导航集合。 我试图通过实现这个线程中的解决方案来解决我的问题。不幸的是,这似乎打破了我蜘蛛的另一部分。错误日志显示我的网址正在成功生成,但它们没有被正确处理。如果我正确地解释了日志——我怀疑我没有——在重新定义允许我

  • 我正在使用git跟踪对LaTeX文档的更改。我倾向于将合著者的反馈保存在一个单独的分支中,并在以后将其合并。到目前为止,事情似乎神奇地正确地合并了,但我想知道合并冲突何时发生,这样我就可以在合并过程中获得一些真正的信任(当然我不希望文本出现问题)。 关于StackOverflow,有许多问题似乎问了同样的问题,但没有一个答案是非常具体的。例如,这个答案指定如果对同一个区域进行更改,就会发生冲突,但

  • 问题内容: 创建Elasticsearch Client时,出现异常java.lang.NoSuchMethodError:com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava / util / concurrent / Executor; 经过一些查找之后,像Guava-18这样的接缝将在运行时被旧版本覆盖,而

  • 当我尝试在Eclipse中启动Server Tomcat 8时,我有以下错误: Java运行时环境检测到致命错误: pc=0x00007ffd233a2bbd,pid=6852,tid=3720 JRE版本:Java(TM)SE运行时环境(8.0_66-b18)(构建1.8.0_66-b18)Java虚拟机:Java热点(TM)64位服务器虚拟机(25.66-b18混合模式windows-amd6

  • 我从sqlite数据库中获取一些数据,在添加order by子句之前,我的查询工作正常 我的查询结构如下 选择*从测试,其中测试像'%test%'COLLATE NOCASE LIMIT 100 OFFSET 0 这运行得很好,我在数据库的前100行获得了包含单词test的所有记录,但是当我以这种方式添加ORDER BY子句时 选择*从TESTI,其中TESTO喜欢'%test%'COLLATE

  • 问题内容: 我正在尝试在PostgreSQL 9.1中做到这一点: 结果是: 好的,让我们使用以下命令执行相同的查询: 我们再次看到了我们的商品,但是一开始!!! 事实是该表包含以下两项: 我通过一种解决方法解决了这种情况: 但是什么地狱??? !!! 为什么必须使用替代方法? 问题答案: 宣誓就不会更改定义此行为的SQL标准。 除非在中指定,否则 行的顺序是 不确定的。每个文档: 如果未选择排序