kotlin(OkHttp)-簡單的網(wǎng)絡(luò)請求:從請求到數(shù)據(jù)顯示

一、 前期準(zhǔn)備工作

在gradle文件里的dependencies中加入

implementation'com.squareup.okhttp3:okhttp:4.9.1'

然后就記得開網(wǎng)絡(luò)權(quán)限

在xml文件中加入權(quán)限請求

<uses-permission android:name="android.permission.INTERNET" />

1.1 http請求的設(shè)置

這樣還不夠,因為android9.0后不支持http網(wǎng)絡(luò)請求,會報錯,只需要https請求可忽略這一步。

需要在res文件下建立一個xml文件,在這個文件夾下建立一個network_security_config.xml文件,如圖所示

文件里可以自定義哪些網(wǎng)址能夠請求,簡單的寫法是

<?xml version="1.0" encoding="utf-8"?>

<network-security-config>

<base-config cleartextTrafficPermitted="true" />?

</network-security-config>

二、 簡單的請求函數(shù)

這里封裝一個簡單的函數(shù),展示使用流程

protected open fun post(url:String, content:String) {

Log.d("---tag---url:", url)

var url = url

var mediaType ="text/x-markdown; charset=utf-8".toMediaTypeOrNull()

var request =Request.Builder()

.url(url)

.post(RequestBody.create(mediaType,""))

.build()

val okHttpClient = OkHttpClient()

okHttpClient.newCall(request).enqueue(object :Callback {

override fun onFailure(call:Call, e:IOException) {

Log.d("---tag---請求失敗","onFailure: " + e.message)

}

@Throws(IOException::class)

override fun onResponse(call:Call, response:Response) {

Log.d("----tag---消息體:", response.protocol.toString() +" " + response.code +" " + response.message+" "+ (response.body?.string() ?:""))

val headers = response.headers

? ? ? ? ? ? Looper.prepare()

Looper.loop()

}

})

}

三、測試api

這里提供一個測試用的api接口

http://cre.dp.sina.cn/api/v3/get?cateid=3Nh&cre=tianyi&mod=wfashion&merge=3&statics=1&length=20&tm=1489716199&ad=%7B%22rotate_count%22:5932,%22page_url%22:%22http://fashion.sina.cn/%22,%22channel%22:%22131036%22,%22platform%22:%22wap%22,%22timestamp%22:1515927821661,%22net%22:null%7D&action=1&up=2&down=0&length=12&_=1515927824733&callback=Zepto15159278216351

一套簡單的請求流程就完成了

如果描述有誤,懇請批評指正,萬分感謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容