如何解决Volley to Retrofit2 - 如何使用 Retrofit2 执行字符串请求?
我想将以下 Volley 字符串请求迁移到 Retrofit2。 此请求以字符串形式检索响应正文,我自己对其进行解析。
fun updatepodcastEpisodesRQ( url: String) {
val FeedReq = StringRequestUTF8(
Request.Method.GET,url,{ response: String? -> ...},{ error: VolleyError ->...}
)
App.instance?.addToRequestQueue(FeedReq,TAG_JSON_REQUEST1)
}
请注意,URL 可以是任何地址,因此在执行 JSON 请求时,没有在 Retrofit.Builder() 中定义的 baseUrl。
用 Retrofit2 可以做这么简单的请求吗?
解决方法
事实上,okhttp3 满足了我的所有需求。我从 Volley 迁移到 okhttp3。
private val client = OkHttpClient()
suspend fun getFeed(url: String): String {
val request = Request.Builder()
.url(url)
.build()
client.newCall(request).execute().use { response ->
if (!response.isSuccessful)
throw IOException("Error occurred - code:${response.code} message=${response.message}")
if (response.body == null)
throw IOException("Error occurred - null body")
return response.body!!.string()
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。