Kotlin/JVM HttpURLConnection的简单使用


更新 2021/12/21

还是Feul库好

基本HTTP请求方式 HttpURLConnection方式

示例

val urlConnection: HttpURLConnection = URL("http://www.baidu.com").openConnection() as HttpURLConnection
val r :String = try {
    val inputStream: InputStream = BufferedInputStream(urlConnection.inputStream)
    val resp = inputStream.readBytes()
    String(resp, Charsets.UTF_8)
} catch (err: Error) {
    "Network Error"
} finally {
    urlConnection.disconnect()
}

在Android限制下的使用

在AndroidManifest.xml中声明网络权限,同时允许明文传输




Android不允许主线程中包含网络请求,可
将回调函数作为参数包装Runnable,并用Thread调用

//License: WTFPL
Thread(getRunnable { println(it) } )
	.start()

fun getRunnable(callback : (String)-> Unit ) : Runnable {
	val urlConnection: HttpURLConnection = URL("http://www.baidu.com").openConnection() as HttpURLConnection
	val r = try {
		val inputStream: InputStream = BufferedInputStream(urlConnection.inputStream)
		val resp = inputStream.readBytes()
		String(resp, Charsets.UTF_8)
	} catch (err: Error) {
		"Network Error"
	} finally {
		urlConnection.disconnect()
	}
	callback(r)
}