美文网首页
聊一聊OkHttp

聊一聊OkHttp

作者: 大鸭梨leepear | 来源:发表于2016-12-14 18:56 被阅读107次

最近的工作中,我们使用了OkHttp3来进行网络请求。

因为之前工作都是使用别人封装好的网络请求,这一次准备自己写写代码使用okhttp来学习一下这个网络请求的框架。

1.首先我们开发的话肯定是要配置build.grade文件了

compile 'com.squareup.okhttp3:okhttp:3.4.1'直接复制粘贴拿去就行

2.我们要明确请求的方式:GET  和  POST

GET:是我们在请求的过程中,自己拼接参数,以明文的形式去进行请求。

   优点:简单易懂,一看就能知道对应的参数和信息,使用起来也很简单。

   缺点:和优点一样,一看就能知道对应的参数和信息,所以会存在一个安全问题。

注:在使用https以后,安全性就要好一些,传输过程中就看不到了。

***********************

POST:是我们在请求的过程中不用手动拼接,而且不以明文的形式去请求。

 优点:安全,还可以上传各种类型的数据。

 缺点:使用起来要比GET繁琐点。

3.实际代码

首先是get(同步,异步两种)

同步:请求完成才接着进行下一步。

异步:不需要等请求结束才能进行下一步。

(这里,就可以联想到用户的登录,和登录之后用户的进行操作,在这我就先不多说了,下一篇再细说)

1).同步:

//创建okHttpClient对象

OkHttpClient client = new OkHttpClient();

//创建一个Request

final Request request = new Request.Builder()

           .url("你的url")

            .build();

new Thread(new Runnable() {

@Override

public void run() {

Response response = null;

try {

response = client.newCall(request).execute();

Log.i("WY","Response返回码" );

if (response.isSuccessful()) {

String result=response.body().string();

Log.i("WY","打印POST响应的数据:" + result);

} else {

Log.i("WY","打印POST响应的数据:three"+response );

}

} catch (IOException e) {

e.printStackTrace();

}

}

}).start();

因为我是在ui线程,所以我这里使用了子线程进行网络的请求。

2).异步:

和同步基本一样,区别就是execute();换成enqueue();

好了,接下来我们开始POST

1.Post方式提交表单使用FormEncodingBuilder来构建和HTML

标签相同效果的请求体. 键值对将使用一种HTML兼容形式的URL编码来进行编码.

但是由于我是使用的okhttp3,所以这里我们就使用了FormBody来代替FormEncodingBuilder,所以看到的不理解的小伙伴们别慌,慢慢看,如果你想了解FormEncodingBuilder,可以看之前的版本,

private final OkHttpClient client = new OkHttpClient();

public void run() throws Exception {

RequestBody formBody = new FormBody.Builder()

.add("key1", "value1")

.add("key2", "value2")

.build();

Request request = new Request.Builder()

.url("你的url")

.post(formBody)

.build();

Response response = client.newCall(request).execute();

if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);

//成功我们可以response.body().string())看到请求返回的json数据

System.out.println(response.body().string());

}

到目前为止简单介绍一下post,至于具体用法,我在下一篇详细写

参考的链接:

http://blog.csdn.net/tangxl2008008/article/details/51730187

http://blog.csdn.net/lmj623565791/article/details/47911083

相关文章

  • 聊一聊OkHttp

    最近的工作中,我们使用了OkHttp3来进行网络请求。 因为之前工作都是使用别人封装好的网络请求,这一次准备自己写...

  • 5.OkHttp请求调度的分析

    大工程搞完了,,咱们接着来抠细节,聊一聊OkHttp的连接池管理和任务队列管理 连接池 OkHttp的链接迟相关的...

  • Retrofit 源码流程分析

    今天我们主要聊一聊 Retrofit 的源码,他是怎样对 OkHttp 包装的。 此次分析源码的版本 Retrof...

  • 聊一聊

    就是这样,喜欢自我欺骗,明知道,真心想你,或者有事的人,会打电话给你。却还是忍不住的用微信,看一个人的消息和动态,...

  • 聊一聊

    记录一下,现在是女儿的生日。2020.7.25星期六 生日快乐我的小天使 微淼商学院说过最经典的话是:有些做商学院...

  • 聊一聊

    早在三天前师兄就告知我们今天上午老师会和我们在实验室聊一聊。校园卡余额不足,时间紧张未吃早餐,早上慌忙收拾赶紧到实...

  • 聊一聊

    大家好,我是野生梅花鹿。 马上就12点了,我决定用几分钟的时间随便写点啥~ 首先呢,是反省。 这个月,其实懒惰了很...

  • 聊一聊

    很久没写了,聊聊最近发生的事,十月份开始了一段长板之旅,一开始担心害怕摔,因为通过挑战一个个动作,挺有趣的,当你为...

  • 聊一聊

    疫情这些年,常常听到的是,哪哪被封控了之类,作为天选打工人,一直在正常上班搬砖中。 直至上周五晚接...

  • 聊一聊自律

    很久以前就知道韩雪,当时只觉得她是气质很优雅,长得很美丽的女明星,没有什么特殊的感觉,应该就是花瓶而已。 她的才气...

网友评论

      本文标题:聊一聊OkHttp

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