Kotlin JVM 原生HTTP請求的簡單使用
阿新 • • 發佈:2021-12-17
基本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)許可協議下提供