我想迁移到Retrofit2以下Volley字符串请求。这个请求检索一个响应体作为字符串,我自己解析它。
fun updatePodcastEpisodesRQ( url: String) {
val feedReq = StringRequestUTF8(
Request.Method.GET,
url,
{ response: String? -> ...},
{ error: VolleyError ->...}
)
App.instance?.addToRequestQueue(feedReq, TAG_JSON_REQUEST1)
}
请注意,URL可以是任何地址,因此没有在Retrofit.Builder()中定义的baseUrl,例如在做JSON请求时
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()
}
}