OkGo的使用(一)

详细使用方式可以直接观看源文档wiki 这里不再说明

本文档也是依赖于源文档进行代码测试和理解写的。

写此文档时okgo版本 compile ‘com.lzy.net:okgo:3.0.4’

几个库的介绍


| library名        | 简介         | 作用  |
| ------------- |---------------| ------|
| okgo        | okhttp的封装库           | 访问网络  |
| okrx      | 基于RxJava的扩展项目   |   实现异步操作,简单说切线程 |
| okrx2| 基于RxJava2的扩展项目       |    同上 |
| OkServer | okgo的扩展       |    上传、下载(支持断点续传) |

全局配置

我这边配置比较简单,需要详细配置参考源文档

写个类继承Application 然后在配置清单中添加

android:name=”.MyApp”

<applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:name=".MyApp"  android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>
</application>
public class MyApp extends Application {@Overridepublic void onCreate() {super.onCreate();
//        OkGo.getInstance().init(this); //最简单的配置 什么都不需要写 全部使用默认参数OkHttpClient.Builder builder = new OkHttpClient.Builder();
//可以使用OkGo内置的log拦截器打印log,如果你觉得不好用,也可以自己写个,这个没有限制。HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor("OkGo");
//log打印级别loggingInterceptor.setPrintLevel(HttpLoggingInterceptor.Level.BODY);
//log颜色级别loggingInterceptor.setColorLevel(Level.INFO);builder.addInterceptor(loggingInterceptor);//全局的读取超时时间builder.readTimeout(OkGo.DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS);
//全局的写入超时时间builder.writeTimeout(OkGo.DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS);
//全局的连接超时时间builder.connectTimeout(OkGo.DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS);/**  connectTimeout:指客户端和服务器 建立通道 的时间writeTimeout:客户端把数据写出去需要的时间readTimeout:客户端等待服务器返回数据的时间* *///使用内存保持cookie,app退出后,cookie消失builder.cookieJar(new CookieJarImpl(new MemoryCookieStore()));OkGo.getInstance().init(this)//必须调用初始化.setOkHttpClient(builder.build())  //建议设置OkHttpClient,不设置将使用默认的.setRetryCount(1); //超时重连,本身1次,我这边设置1次,总共2次访问}
}

最基本的网络访问示例

本来想用公司的接口写个登录验证demo
不过还要看接口文档还要数据加密什么的 就简单的网上找了一个天气接口

示例中用了butterknife 你可以findviewbyid来找控件

public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";

private static String address = “http://www.weather.com.cn/data/sk/101010100.html“;
//@BindView(R.id.met_user)
//MaterialEditText metUser;
//@BindView(R.id.met_psd)
//MaterialEditText metPsd;
@BindView(R.id.submit)
Button submit;

@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);long id = Thread.currentThread().getId();Log.e(TAG,id+"");ButterKnife.bind(this);
}@OnClick(R.id.submit)
public void onViewClicked() {//String user = metUser.getText().toString();//String psd = metPsd.getText().toString();//if(user.isEmpty()||psd.isEmpty()){//    return;//}// TODO: 2017/8/14 提交数据给服务器OkGo.<String>get(address).execute(new StringCallback() {@Overridepublic void onSuccess(Response<String> response) {long id = Thread.currentThread().getId();//从打印日志可以看到网络结果回调发生在主线程 线程id=1Log.e(TAG,id+" : "+response.body());}//这个方法默认是空实现,需要自己重写出来,不然你访问出了错你只能打印库中给你提供的打印日志@Overridepublic void onError(Response<String> response) {super.onError(response);}});
}

}

运行完demo 点击一下button

E/MainActivity: 1 : {"weatherinfo":{"city":"北京","cityid":"101010100","temp":"18","WD":"东南风","WS":"1级","SD":"17%","WSE":"1","time":"17:05","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"暂无实况","qy":"1011","rain"

okGo详细使用步骤(一)相关推荐

  1. k8s v1.9.6 超详细搭建步骤

    部署说明 k8s新的版本与之前1.5的部署方式发生改变,官方将kubernetes大组件中的服务例如(kube-proxy.kube-api等服务)剥离出来封装成容器的形式来简化部署的方式.以下为三个 ...

  2. 【Linux】【服务器】 CentOS7下安装MySQL(版本8.0)详细过程步骤

    一.检查是否安装过mysql [Linux][服务器]CentOS7下卸载MySQL详细过程步骤 二.下载Linux下的Mysql包,打开Mysql官网 1.MySQL官网 2.滑到最后,点击MySQ ...

  3. 安装 | Windows 10下基于Anaconda的TensorFlow详细安装步骤(续)——Pycharm运行tensorflow

    github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 Blogger:MichaelBeecha ...

  4. Oracle 11g 11201_RHEL5.5_RAC_VBOX 详细搭建步骤

    Oracle 11g 11201_RHEL5.5_RAC_VBOX 详细搭建步骤 1.安装好vbox,创建好虚拟机(红帽5.5),注意:VBOX全局设置VBOX磁盘的位置和备份位置 IP.hostna ...

  5. w7鼠标计算机无法识别,win7电脑遇见usb鼠标无法标识的详细处理步骤

    部分win7电脑用户遇见usb鼠标无法标识的情况,要怎么处理呢?下面教程就为你们带来了win7电脑遇见usb鼠标无法标识的详细处理步骤. 1.首先,如果你的鼠标出现没有反应的情况,你就把鼠标拔下来,然 ...

  6. 演示:Linux工程环境应用实训(防火墙、NAT、静态路由)详细配步骤

    各位童鞋注意:该实验完成可以使用GNS3与4虚拟机进行桥接,然后在一台物理计算机上完成,不虽要去拿真正的4台服务器或者交换机路由器来连成一个网络,现在大家都使用网络仿真教学与实验! Linux工程环境 ...

  7. pq分解法中b’怎么求_14.初中数学:二元一次方程组,加减消元法怎么解?视频有详细解题步骤...

    欢迎您来到方老师数学课堂,请点击上方蓝色字体,关注方老师数学课堂.所有的视频内容,全部免费,请大家放心关注,放心订阅. 初中数学:二元一次方程组,加减消元法怎么解?视频有详细解题步骤.大家先在草稿本上 ...

  8. flutter怎么添加ios网络权限_视频号直播间怎么添加购物车商品;超详细流程步骤。丨国仁网络资讯...

    蘑菇租房的联合创始人龙东平前几个月曾说:"视频号是一次掀翻桌子重新排座次的机会,是巨浪滔天,是新世界,新秩序." 视频号发展趋势愈加迅猛,越来越多的玩家涌入,正在获得新一波社交流量 ...

  9. 借贷宝详细注册步骤:邀请朋友送20元,朋友再邀请朋友还送你10元【3天已赚6千】(附我的邀请记录和提现到账截图)...

          九鼎8月8日开始正式推广"借贷宝",推广费用为20亿.按照熟人带熟人的模式推广:A带B.B带C.C带D --依次类推,呈病毒式传播.无论谁只要通过扫描上一级人员的二维码 ...

最新文章

  1. Android 布局跟着NAVIGATION_BAR 重新布局
  2. C++ VARIANT 学习小记录
  3. POJ - 3250 Bad Hair Day(单调队列/单调栈)
  4. 初学者应该了解的一些SQL语句及hr 用户解锁相关
  5. 【再认识】认知智能下需要的实体知识与事件知识
  6. 1997年投稿,2021年发表!收到录用信那一刻,我即将退休……
  7. JDBC粗略学习( 阿巴阿巴阿巴阿巴)
  8. C语言指针实数组输入输出,C语言:回来两个数组中第一个元素的指针,并输出这个值...
  9. c语言高精度计算函数库
  10. JavaScript的类型转换
  11. Swift 01.String
  12. Speedoffice(excel)如何根据身份证号计算年龄
  13. linux 翻录cd,Linux下一个CD翻录 创CUE 压缩flac攻略
  14. 1e9个兵临城下 - 容斥原理
  15. 网络工程项目报价单应该怎么写?记住这6个步骤准没错!
  16. python 统计.txt中比较句个数,五元组的个数、以及有多少重复的op(以五元组为统计单位)
  17. 关于mingw32-make的错误
  18. 我们更需要指数型的AB产品(长盛同庆、基金瑞福)
  19. 如何在短时间内成为数据分析师
  20. Linux多线程编程-线程函数返回值(返回简单数据类型)

热门文章

  1. C语言求一万以内的超级素数,用C语言求素数的优化.doc
  2. maven聚合工程报错:Could not find artifact com.*.*:*-*-*goods:pom:1.0.0-SNAPSHOT in dev
  3. AI_Papers周刊:第三期
  4. Python数据处理Tips数据连续变量常用10种处理方法
  5. 企业在数字化转型,数据化运营上遇到了哪些困境,如何解决?
  6. 第七十篇 数据处理与分析 Numpy
  7. Java——泛型和Io流
  8. 【蓝桥杯Web】大一小白参与蓝桥杯模拟赛二期web组体会
  9. Qt 无法打开包括文件:“QGLWidget”: No such file or directory
  10. Gopro写入文件失败SD卡要求格式化数据恢复建议