在Android/Kotlin中,使用okhttp库发送GET请求并返回响应头,并且不跟随重定向的解决方法如下所示:
import okhttp3.*
fun sendGetRequest() {
val client = OkHttpClient.Builder()
.followRedirects(false) // 不跟随重定向
.build()
val request = Request.Builder()
.url("https://example.com") // 请求的URL
.build()
val response = client.newCall(request).execute()
val headers = response.headers() // 获取响应头
// 打印响应头
for (name in headers.names()) {
val value = headers.get(name)
println("$name: $value")
}
val responseBody = response.body()?.string() // 获取响应体
println(responseBody)
response.close()
}
在上述代码中,我们创建了一个OkHttpClient
实例,并通过followRedirects(false)
方法设置不跟随重定向。然后,我们使用Request.Builder()
构建一个GET请求,并指定请求的URL。接下来,我们通过client.newCall(request).execute()
方法发送请求并获取响应对象。通过response.headers()
方法可以获取响应头,并通过遍历的方式打印出来。还可以通过response.body()?.string()
方法获取响应体的字符串形式。
注意:由于网络请求是耗时操作,建议在子线程中执行以上代码,以避免阻塞主线程。