1. 程式人生 > 其它 >Kotlin JVM 原生HTTP請求的簡單使用

Kotlin JVM 原生HTTP請求的簡單使用

基本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中宣告網路許可權,同時允許明文傳輸

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application 
	android:usesCleartextTraffic="true"
/>

Android不允許主執行緒中包含網路請求,可
將回調函式作為引數包裝Runnable,並用Thread呼叫

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

Copyright 2021 Winterreisender. 文字內容除另有宣告外,均在知識共享 署名-非商業性使用-禁止演繹 4.0 國際 (CC BY-NC-ND 4.0)許可協議下提供