gpt4 book ai didi

kotlin - 您可以在Kotlin的stringRequest变量之外从Volley获取响应数据吗?

转载 作者:行者123 更新时间:2023-12-02 13:32:58 24 4
gpt4 key购买 nike

我想从变量之外的网站获取Volley stringRequest响应。

val queue = Volley.newRequestQueue(this)
val url = ""


// Request a string response from the provided URL.
val stringRequest = StringRequest(
Request.Method.GET, url,
Response.Listener<String> { response ->
var obj = JSONObject(response) <-- cant access this variable outside of stringRequest
},
Response.ErrorListener { textView3.text = "That didn't work!" })

stringRequest.body.toString() <-- cant covert null to string

stringRequest.headers.toString() <-- output is {}

//here i want to do something like

if (response == "True") {
//do something
}

在我访问的网站上,无非是 {"check":"True"}

最佳答案

此实现以其内置方式是异步的,实际上,您可以做得更像是同步,如果您在项目中使用协程,则可以使用suspendCoroutine,请参见
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.coroutines.experimental/suspend-coroutine.html

示例:

suspend fun getData(url: String) = suspendCoroutine<String?> { cont ->
val queue = Volley.newRequestQueue(this)

val stringRequest = StringRequest(Request.Method.GET, url,
Response.Listener<String> { response ->
cont.resume(response)
},
Response.ErrorListener { cont.resume(null) })

queue.add(stringRequest)
}

现在您可以从Response.Listener()中访问响应字符串

编辑:另外,如果您不想返回可为空的表达式并在每次使用此功能时检查可为空性,则可以执行 cont.resumeWithException(e)

关于kotlin - 您可以在Kotlin的stringRequest变量之外从Volley获取响应数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60246852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com