或许不是很全面,也都是从网上粘的,自己记下以后使用方便点。如有不对的地方 欢迎指教。

首先添加依赖:

implementation 'com.lzy.net:okgo:3.0.4'

设置初始化和全局配置:

public class App extends Application {

@Override

public void onCreate() {

super.onCreate();

//okGo网络框架初始化和全局配置

OkHttpClient.Builder builder = new OkHttpClient.Builder();

//builder.cookieJar(new CookieJarImpl(new SPCookieStore(this))); //使用sp保持cookie,如果cookie不过期,则一直有效

builder.cookieJar(new CookieJarImpl(new DBCookieStore(this)));//使用数据库保持cookie,如果cookie不过期,则一直有效

//builder.cookieJar(new CookieJarImpl(new MemoryCookieStore())); //使用内存保持cookie,app退出后,cookie消失

//设置请求头

HttpHeaders headers = new HttpHeaders();

headers.put("commonHeaderKey1", "commonHeaderValue1"); //header不支持中文,不允许有特殊字符

headers.put("commonHeaderKey2", "commonHeaderValue2");

//设置请求参数

HttpParams params = new HttpParams();

params.put("commonParamsKey1", "commonParamsValue1"); //param支持中文,直接传,不要自己编码

params.put("commonParamsKey2", "这里支持中文参数");

OkGo.getInstance().init(this) //必须调用初始化

.setOkHttpClient(builder.build()) //建议设置OkHttpClient,不设置会使用默认的

.setCacheMode(CacheMode.NO_CACHE) //全局统一缓存模式,默认不使用缓存,可以不传

.setCacheTime(CacheEntity.CACHE_NEVER_EXPIRE) //全局统一缓存时间,默认永不过期,可以不传

.setRetryCount(3) //全局统一超时重连次数,默认为三次,那么最差的情况会请求4次(一次原始请求,三次重连请求),不需要可以设置为0

.addCommonHeaders(headers) //全局公共头

.addCommonParams(params);

}

}

Post请求 使用的是json形式传参

Map map = new HashMap<>();

map.put("pageNum", 1);

map.put("pageSize", 10);

Gson gson = new Gson();

String json = gson.toJson(map);

OkGo.post(url) //输入请求地址

.tag(this)//销毁请求时候会用到

.upJson(json)//上传参数 如果没什么需求直接用 .params("key", "paramValue1")

.execute(new StringCallback() {

@Override

public void onSuccess(Response response) {

String body = response.body();

Gson bodyJson = new Gson();

MyBean myBean = bodyJson.fromJson(body, MyBean.class);

Log.d("MainActivity", "============" + myBean.getMsg());

Log.d("MainActivity", "============" + myBean.getData().getList().size());

}

@Override

public void onError(Response response) {

super.onError(response);

}

});

Get请求

OkGo.get(url)

.tag(this)//

.headers("header1", "headerValue1")//

.params("param1", "paramValue1")//

.execute(new StringCallback() {

@Override

public void onSuccess(Response response) {

//注意这里已经是在主线程了

String data = response.body();//这个就是返回来的结果

}

@Override

public void onError(Response response) {

super.onError(response);

}

});

文件上传

OkGo.post(url)

.tag(this)//

.headers("header1", "headerValue1")//

.headers("header2", "headerValue2")//

.params("param1", "paramValue1")//

.params("param2", "paramValue2")//

// .params("file1",new File("文件路径")) //这种方式为一个key,对应一个文件

// .params("file2",new File("文件路径"))

// .params("file3",new File("文件路径"))

.addFileParams("filename", files) // 这种方式为同一个key,上传多个文件

.execute(new JsonCallback() {

@Override

public void onStart(Request request) {

btnFormUpload.setText("正在上传中...");

}

@Override

public void onSuccess(Response response) {

btnFormUpload.setText("上传完成"+response.body());

}

@Override

public void onError(Response response) {

btnFormUpload.setText("上传出错");

}

@Override

public void uploadProgress(Progress progress) {

System.out.println("uploadProgress: " + progress);

}

});

文件下载

OkGo.get(url)

.tag(this)//

.headers("header1", "headerValue1")//

.params("param1", "paramValue1")//

.execute(new FileCallback("OkGo.apk") {

@Override

public void onStart(Request request) {

btnFileDownload.setText("正在下载中");

}

@Override

public void onSuccess(Response response) {

btnFileDownload.setText("下载完成"+response.body());

}

@Override

public void onError(Response response) {

btnFileDownload.setText("下载出错");

}

@Override

public void downloadProgress(Progress progress) {

System.out.println(progress);

}

});

请求销毁

@Override

protected void onDestroy() {

super.onDestroy();

//取消指定tag的请求

OkGo.getInstance().cancelTag(this);

//取消全部请求

OkGo.getInstance().cancelAll();

//取消OkHttpClient的全部请求

OkGo.cancelAll(new OkHttpClient());

OkGo.cancelTag(new OkHttpClient(), "且指定tag");

}

基本上就这些了,欢迎大家补充和指点

android okgo参数,Android OkGo基本操作相关推荐

  1. android okgo 参数map,Okgo分享

    OkGo使用分享 OkGo这个框架可能很多人听过,但是okHttp开发安卓的人士一定听过,可能还在使用.现在最火的两个框架一个是OkHttp另一个是Retrofit,Retrofit用过一次感觉不太好 ...

  2. android onpagescrolled 参数,Android

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 背景 ViewPager 在应用中使用较为广泛,诸如页面轮播图,App引导页,大图预览等.其中指示器页比较重要 它用于提 ...

  3. android datepicker 参数,android常用组件之DatePicker和TimePicker

    在android中,DatePicker组件和TimePicker组件分别是日期选择器和时间选择器. 该实例中,当点击日期选择器按钮后,弹出日期选择框,用户选择日期后andoid会将日期显示到Text ...

  4. android 多类型参数,Android的数据绑定-类型参数T具有不兼容的上限:ViewDataBinding和MainActivity...

    我正在使用Android Studio 2.0 Preview 4.我正在使用Android SDK工具25 rc1. 无论我清理/重建项目多少次,此错误仍然存在. File-> Invalid ...

  5. android okgo 参数map,OkGo 网络请求框架介绍与使用说明

    前言 使用 Android Studio 用户 一般来说,只需要添加第一个 okgo 的核心包即可,其余的三个库根据自己的需要选择添加. //必须使用 compile 'com.lzy.net:okg ...

  6. android okgo参数,android okgo post传数组

    JSONObject  json1 = new JSONObject(); json1.put("memo", fankuiEt.getText().toString()); js ...

  7. android sqlite 参数,Android SQLite3命令详解教程

    SQLite3可以让我们手动的对SQLite数据库进行管理.一共有2个sqlite3,一个在电脑上,它位于 android-sdk-windows\tools\sqlite3.exe,用于电脑上SQL ...

  8. android getevent参数,android getevent、sendevent、input keyevent 使用说明

    设备节点: dev 字符设备节点: shell@android:/dev/input $ ll crw-rw---- root input 13, 64 2013-11-28 17:23 event0 ...

  9. android settext 参数,Android TextView.setTextColor()的参数设置方式

    摘要:Android TextView.setTextColor()的参数设置方式 查了下资料发现setTextColor()的参数应该写成以下的这种形式: setTextColor(0xFF0000 ...

最新文章

  1. BMC Biology:香港城市大学孙燕妮组发表高准确度预测病毒宿主的工具
  2. SQL存储过程实例具体解释
  3. 判断Python输入是否为数字
  4. zblock 结构_偷窥Data block 的物理结构
  5. Hibernate占位符?和:及JPA
  6. MDF文件查看器(SQL MDF Viewer) 1.0 绿色版
  7. 卫星星历和历书的区别
  8. 【Matlab】符号运算总结
  9. 利用python搭建socket server服务器
  10. 栈 -- 以及用栈实现计算器
  11. Windows使用cwRsync实现服务器文件同步到Linux服务器
  12. 使用maven为web工程引入jstl包时报错
  13. Read timed out executing GET (读取执行GET超时)
  14. ecshop模板中使用php,使ecshop模板中可引用常量的实现方法_php
  15. 浏览器访问服务器的流程
  16. 电商行业如何投放UC头条信息流广告?UC广告投放的扣费模式
  17. 尚硅谷在线教育视频点播
  18. 计算机类普刊有哪些,可以快速发表论文的计算机普刊
  19. Linux运维之网络的配置,四种ip方式的设定,网关,dns的设定及物理机的网络连接
  20. QA:GMS认证、CTS测试、GTS测试、谷歌认证、安卓认证,Android

热门文章

  1. 洛谷-图的遍历-P2661-信息传递
  2. python gui 自动化_python GUI测试自动化
  3. vue编写to-do list源码
  4. php文件解锁,php文件锁怎么用
  5. tx2无法识别网络_Jetson TX2开篇--网络配置
  6. Java NIO 教程
  7. php 5.3.3 46.el6 6,centos php 5.3升级到 php5.4版本
  8. 思科光传输功率查询_常见的6款40G QSFP+光模块型号介绍及应用
  9. esmini LongSpeedAction修改
  10. 串口与modem流量控制大全(1)