美文网首页知识图谱
Kotlin笔记(66) — kotlin实现Http请求

Kotlin笔记(66) — kotlin实现Http请求

作者: 奔跑的佩恩 | 来源:发表于2021-03-02 08:29 被阅读0次

    前言

    在Android开发过程中, 经常会涉及到一些网络请求。比较优秀的网络请求有:HttpClientAndroid-Async-Http,Volley,OkHttpRetrofitkotlin在网络请求方面,也有不俗表现。这里我将Kotlin实现简单的网络GET请求封装到了一个工具类HttpUtil中,下面就来看看相关使用吧

    今天涉及到的知识有:

    1. HttpUtil 简介
    2. HttpUtil 在Activity 中使用
    3. 效果图和鲜蘑菇结构图
    4. HttpUtil 源码
    5. 一些建议

    先来波效果图


    效果图.gif

    一.HttpUtil 简介

    HttpUtil是利用kotlin语言封装的网络请求,可以实现简单的GET请求,包括获取文字和获取网络图片的方法。HttpUtil主要方法如下:

        /***
         * get请求获取数据
         *
         * @param url:请求的url,如:
         * @param charset: 字符集,如 Charsets.UTF_8
         */
        fun getTextData(url:String,charset: Charset,listener:OnGetTextResultListener)
    
        /***
         * get请求获取网络图片
         *
         * @param url:请求的url
         */
        fun getBytesData(url:String,listener:OnGetByteResultListener)
    

    二. HttpUtil 在Activity 中使用

    涉及网络通讯的话,需要在androidmanifast.xml中加上网络权限,如下:

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

    下面贴出HttpUtilTempActivity中使用代码:

    /**
     * Title:
     * description:
     * autor:pei
     * created on 2021/1/21
     */
    class TempActivity :AppCompatActivity(),HttpUtil.OnGetTextResultListener,
        HttpUtil.OnGetByteResultListener {
    
        private var mHttpUtil:HttpUtil= HttpUtil()
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_temp)
    
            //点击事件
            mBtn.setOnClickListener {
                LogUtil.i("====我点击了====")
    
                //发起请求( 注: 测试url会在后文中给出)
                var url:String="https://xxx.xxxxx.xxx"
                mHttpUtil.getTextData(url,Charsets.UTF_8,this@TempActivity)
            }
    
            //点击事件
            mBtn2.setOnClickListener {
                LogUtil.i("====我点击了啊====")
                
                //注: 测试url会在后文中给出
                 var url:String="https://xxx.xxxxx.xxx"
                mHttpUtil.getBytesData(url,this@TempActivity)
            }
        }
    
    
        override fun getTextResult(result: String?) {
            //数据太多,为了演示效果,只取部分数据
            var message:String = result!!.substring(0,20)
    
            LogUtil.i("======收到结果===message=$message")
            mTvTest.text = message
        }
    
        override fun getByteResult(bitmap: Bitmap?) {
            mImv.imageBitmap=bitmap
        }
    
    }
    

    三.效果图和项目结构图

    图片比较大,加载时会比较慢些


    效果图.gif image.png

    四.HttpUtil 源码

    4.1 获取文字通讯和获取网络图片的url

    相关文章

      网友评论

        本文标题:Kotlin笔记(66) — kotlin实现Http请求

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