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)
}