Android Http简单整理

一.HttpURLConnection关于字符流的步骤。

  1. 获取字节流(InputStream)
  2. 通过读取InputStreamReader 读取
  3. 通过BufferedReader 读取InputStreamReader(inputStream)
  4. 创建String(StringBuilder)
private fun sendRequestWithHttpURLConnection(){
    thread{
        var connection:HttpURLConnection?=null
        val response=StringBuilder()
        try{
        val url=URL("https://www.baidu.com")
        connection=url.openConnection as HttpURLConnection
        connection.connectTimeOut=8000
        connection.readTimeOut=8000
        val reader= BufferedReader(InputStreamReader(connection.inputStream))
        reader.use{
        reader.forEachLine{
        response.append(it)
           }
        }
     }catch(e:Exception){
     e.printStackTrace()
     }finally{
     connection?.disconnect()
     }
  }
}

二.OkHttp的基本用法

  1. 创建OkHttpClient的实例。
  2. 创建一个Request 对象
  3. 调用OkHttpClient的newCall()对象,并且调用execute()方法返回服务器的数据
private fun sendRequestWithOkHttp(){
thread{
    try{
    val okHttpClient=OkHttpClient()
    val request=Request.Builder()
    .url("https://www.baidu.com")
    .build()
    val response=okHttpClient.newCall(request).execute()
    val responseData= response.body?.string()
        }catch(e:Exception){
    e.printStackTrace()
       }
   }

}

以上就是一个简单的Get请求,如果要向服务器POST数据就要多一些步骤。
POST: 创建一个Request Body对象来存放数据。

val requestBody=FormBody.Bulider()
                .add("userName","EL")
                .add("password","123456")
                .bulid()
val request= Request.Builder()
            .url("https://www.baidu.com")
            .post(requestBody)
            .build()

最后进行UI更新记得使用runOnUiThread, 因为Android 是不允许在子线程进行UI操作的。 runOnUiThread()方法其实就是对异步消息处理机制进行了一层封装。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值