前言
在Android开发过程中, 经常会涉及到一些网络请求。比较优秀的网络请求有:HttpClient
,Android-Async-Http
,Volley
,OkHttp
和Retrofit
。kotlin
在网络请求方面,也有不俗表现。这里我将Kotlin
实现简单的网络GET
请求封装到了一个工具类HttpUtil
中,下面就来看看相关使用吧
今天涉及到的知识有:
- HttpUtil 简介
- HttpUtil 在Activity 中使用
- 效果图和鲜蘑菇结构图
- HttpUtil 源码
- 一些建议
先来波效果图
效果图.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"/>
下面贴出HttpUtil
在TempActivity
中使用代码:
/**
* 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
网友评论