Android网络请求回调的实现方式
在Android开发中,实现网络请求回调的方式包括HttpURLConnection和OkHttp。由于在一个app中会使用到很多次网络请求,所以通常情况下会将这些通用的网络操作提取到一个公共的类中,并提供一个通用的方法,当想要发起网络请求的时候,只需要调用这个方法即可。
一、公共类HttpUtil
// HttpURLConnection
fun sendRequestWithHttpURLConnection(urlStr: String):String {
var connection: HttpURLConnection? = null
try {
val response = StringBuilder()
// 1. 创建URL对象
val url = URL(urlStr)
// 2. 使用HttpURLConnection类打开到该URL的连接
connection = url.openConnection() as HttpURLConnection
// 3. HttpURLConnection实例属性设置
connection.requestMethod = "GET"
connection.connectTimeout = 8000
connection.readTimeout = 8000
// 4. 获得请求后服务器返回的数据流
val inputText = connection.inputStream
// 5. 对获取到的输入流进行读取
val reader = BufferedReader(InputStreamReader(inputText))
reader.use {
it.forEachLine {
response.append(it)
}
}
return response.toString()
} catch (e: Exception) {
e.printStackTrace