Volley to Retrofit2 - 如何使用 Retrofit2 进行字符串请求?
Volley to Retrofit2 - How to do a String Request with 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()
}
}
我想将以下 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()
}
}