引言
HttpURLConnection 是 Android 提供的一个轻量级 HTTP 客户端,支持多种 HTTP 方法,尽管在功能上不如之后会介绍的OkHttp复杂多样,但它在一些基本的网络请求场景下依然表现出色,简单易用和直接集成两个优点让HttpURLConnection仍是处理简单 HTTP 请求时的首选工具。
应用场景和基本用法
HttpURLConnection的应用场景相当广泛,这里以天气预报应用为例,想要实现天气预报的核心功能非常简单,只需要从服务器获取当前天气信息并向服务器发送用户的位置信息,
应用启动时需要从天气服务的API获取当前天气信息。这个需求可以通过 GET
请求来实现
fun getWeatherData(apiUrl: String): String {
val url = URL(apiUrl)
val connection = url.openConnection() as HttpURLConnection
connection.requestMethod = "GET"
connection.connectTimeout = 8000
connection.readTimeout = 8000
try {
val inputStream = connection.inputStream
val reader = BufferedReader(InputStreamReader(inputStream))
val response = StringBuilder()
var line: String?
while (reader.readLine().also { line = it } != null) {
response.append(line)
}
return response.toString()
} finally {
con