Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Kotlin 1.1.0中发出异步网络请求的正确方法,无需额外的库_Kotlin_Minecraft Forge - Fatal编程技术网

在Kotlin 1.1.0中发出异步网络请求的正确方法,无需额外的库

在Kotlin 1.1.0中发出异步网络请求的正确方法,无需额外的库,kotlin,minecraft-forge,Kotlin,Minecraft Forge,我目前正在开发一个mod,目标是他们系统的一个非常旧的版本 相关信息: Gradle包装不能比版本3.0更新 Kotlin不能比版本1.1.0更新 我似乎找不到关于kotlin的版本化文档 我的代码被注入主程序;它不是独立运行的 这不是在android上运行的 我一直在试图弄清楚如何正确/惯用地使用纯kotlin创建异步网络请求,并在完成后更新主线程上的项目。网络请求完成后不应永久挂起主程序 到目前为止,我所尝试的: // Player is a custom class of mine t

我目前正在开发一个mod,目标是他们系统的一个非常旧的版本

相关信息:

  • Gradle包装不能比版本3.0更新
  • Kotlin不能比版本1.1.0更新
  • 我似乎找不到关于kotlin的版本化文档
  • 我的代码被注入主程序;它不是独立运行的
  • 这不是在android上运行的
我一直在试图弄清楚如何正确/惯用地使用纯kotlin创建异步网络请求,并在完成后更新主线程上的项目。网络请求完成后不应永久挂起主程序

到目前为止,我所尝试的:

// Player is a custom class of mine that stores data I fetch here
class FetchStatsThread(val uuid: String, val callback: (player: Player) -> Unit): Thread() {
    override fun run() {
        val url = URL("domain")
        val request: URLConnection = url.openConnection()
        request.connect()
        val str = InputStreamReader(request.getContent() as InputStream).buffered().use(BufferedReader::readText)
        // do some stuff here that generates a Player object named playerData
        callback(playerData)
    }
}

...

// Elsewhere, i trigger the request with:
FetchStatsThread(uuid, callback).start()

在kotlin 1.1或更早版本中,这是发出异步网络请求的正确方法吗?

不是重复的:,由于这些问题涉及Kotlin 1.3或androidI上的Kotlin的功能,我认为您最好弄清楚如何更新您的gradle/Kotlin版本,而不是试图解决一个非常过时的版本kotlin@krit为什么您要限制Gradle和Kotlin版本?您的目标是哪个JDK版本?如果JDK11+您有一个更高级别的
HttpClient
可以使用,而不是老式的
URLConnection