美文网首页
kotlin(OkHttp)-简单的网络请求:从请求到数据显示

kotlin(OkHttp)-简单的网络请求:从请求到数据显示

作者: 许夜 | 来源:发表于2021-06-30 19:49 被阅读0次

    一、 前期准备工作

    在gradle文件里的dependencies中加入

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

    然后就记得开网络权限

    在xml文件中加入权限请求

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

    1.1 http请求的设置

    这样还不够,因为android9.0后不支持http网络请求,会报错,只需要https请求可忽略这一步。

    需要在res文件下建立一个xml文件,在这个文件夹下建立一个network_security_config.xml文件,如图所示

    文件里可以自定义哪些网址能够请求,简单的写法是

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

    <network-security-config>

    <base-config cleartextTrafficPermitted="true" /> 

    </network-security-config>

    二、 简单的请求函数

    这里封装一个简单的函数,展示使用流程

    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

    一套简单的请求流程就完成了

    如果描述有误,恳请批评指正,万分感谢!

    相关文章

      网友评论

          本文标题:kotlin(OkHttp)-简单的网络请求:从请求到数据显示

          本文链接:https://www.haomeiwen.com/subject/rgxsultx.html