android okgo参数,Android OkGo基本操作
或许不是很全面,也都是从网上粘的,自己记下以后使用方便点。如有不对的地方 欢迎指教。
首先添加依赖:
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基本操作相关推荐
- android okgo 参数map,Okgo分享
OkGo使用分享 OkGo这个框架可能很多人听过,但是okHttp开发安卓的人士一定听过,可能还在使用.现在最火的两个框架一个是OkHttp另一个是Retrofit,Retrofit用过一次感觉不太好 ...
- android onpagescrolled 参数,Android
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 背景 ViewPager 在应用中使用较为广泛,诸如页面轮播图,App引导页,大图预览等.其中指示器页比较重要 它用于提 ...
- android datepicker 参数,android常用组件之DatePicker和TimePicker
在android中,DatePicker组件和TimePicker组件分别是日期选择器和时间选择器. 该实例中,当点击日期选择器按钮后,弹出日期选择框,用户选择日期后andoid会将日期显示到Text ...
- android 多类型参数,Android的数据绑定-类型参数T具有不兼容的上限:ViewDataBinding和MainActivity...
我正在使用Android Studio 2.0 Preview 4.我正在使用Android SDK工具25 rc1. 无论我清理/重建项目多少次,此错误仍然存在. File-> Invalid ...
- android okgo 参数map,OkGo 网络请求框架介绍与使用说明
前言 使用 Android Studio 用户 一般来说,只需要添加第一个 okgo 的核心包即可,其余的三个库根据自己的需要选择添加. //必须使用 compile 'com.lzy.net:okg ...
- android okgo参数,android okgo post传数组
JSONObject json1 = new JSONObject(); json1.put("memo", fankuiEt.getText().toString()); js ...
- android sqlite 参数,Android SQLite3命令详解教程
SQLite3可以让我们手动的对SQLite数据库进行管理.一共有2个sqlite3,一个在电脑上,它位于 android-sdk-windows\tools\sqlite3.exe,用于电脑上SQL ...
- 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 ...
- android settext 参数,Android TextView.setTextColor()的参数设置方式
摘要:Android TextView.setTextColor()的参数设置方式 查了下资料发现setTextColor()的参数应该写成以下的这种形式: setTextColor(0xFF0000 ...
最新文章
- BMC Biology:香港城市大学孙燕妮组发表高准确度预测病毒宿主的工具
- SQL存储过程实例具体解释
- 判断Python输入是否为数字
- zblock 结构_偷窥Data block 的物理结构
- Hibernate占位符?和:及JPA
- MDF文件查看器(SQL MDF Viewer) 1.0 绿色版
- 卫星星历和历书的区别
- 【Matlab】符号运算总结
- 利用python搭建socket server服务器
- 栈 -- 以及用栈实现计算器
- Windows使用cwRsync实现服务器文件同步到Linux服务器
- 使用maven为web工程引入jstl包时报错
- Read timed out executing GET (读取执行GET超时)
- ecshop模板中使用php,使ecshop模板中可引用常量的实现方法_php
- 浏览器访问服务器的流程
- 电商行业如何投放UC头条信息流广告?UC广告投放的扣费模式
- 尚硅谷在线教育视频点播
- 计算机类普刊有哪些,可以快速发表论文的计算机普刊
- Linux运维之网络的配置,四种ip方式的设定,网关,dns的设定及物理机的网络连接
- QA:GMS认证、CTS测试、GTS测试、谷歌认证、安卓认证,Android
热门文章
- 洛谷-图的遍历-P2661-信息传递
- python gui 自动化_python GUI测试自动化
- vue编写to-do list源码
- php文件解锁,php文件锁怎么用
- tx2无法识别网络_Jetson TX2开篇--网络配置
- Java NIO 教程
- php 5.3.3 46.el6 6,centos php 5.3升级到 php5.4版本
- 思科光传输功率查询_常见的6款40G QSFP+光模块型号介绍及应用
- esmini LongSpeedAction修改
- 串口与modem流量控制大全(1)