OkGo主要功能
- 基本的get、post、put、delete、head、options、trace、patch八种请求
- 支持upString,upJson,upBytes,upFile等up类方法上传特定数据
- 支持一个key上传一个文件,也可以一个key上传多个文件,也可以多文件和多参数一起上传
- 大文件下载和下载进度回调
- 大文件上传和上传进度回调
- 支持cookie的自动管理,并可自定义cookie管理策略
- 支持缓存模式,不仅支持http缓存协议,也支持自定义缓存策略
- 支持重定向
- 支持自定义超时自动重连次数
- 支持链式调用
- 支持https访问,支持双向认证
- 支持根据tag取消请求,也可全部取消
- 支持自定义Callback,自动解析网络数据
重要的事情说三遍
无论做什么请求,第一行的泛型一定要加!!!
无论做什么请求,第一行的泛型一定要加!!!
无论做什么请求,第一行的泛型一定要加!!!
1.POST请求数据
private void dopost() {
HashMap<String,String> map=new HashMap<>();
map.put("phone","123456");
map.put("passwd","12346");
OkGo.<String>post("https://www.apiopen.top/createUser?key=00d91e8e0cca2b76f515926a36db68f5&")
.params(map)
.execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
Toast.makeText(MainActivity.this, ""+response.body(), Toast.LENGTH_SHORT).show();
}
});
}
2.POST上传文件
private void upload() {
OkGo.<String>post("http://169.254.113.244/hfs/")
.isMultipart(true)
.params("file",new File("/sdcard/haha.jpg"),"zizi.jpg")
.execute(new StringCallback() {
@Override
public void uploadProgress(Progress progress) {
super.uploadProgress(progress);
progressBar1.setProgress((int) (progress.fraction*100));
}
@Override
public void onSuccess(Response<String> response) {
Toast.makeText(MainActivity.this, ""+response.body(), Toast.LENGTH_SHORT).show();
}
});
}
3.GET请求JSON
public void getString(){
OkGo.<String>get("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1")
.execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
String body = response.body();
Toast.makeText(MainActivity.this, ""+body, Toast.LENGTH_SHORT).show();
}
@Override
public void onError(Response<String> response) {
super.onError(response);
}
});
}
4.GET请求图片
private void getBitmap() {
OkGo.<Bitmap>get("https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=486958716,243120904&fm=26&gp=0.jpg")
.execute(new BitmapCallback() {
@Override
public void onSuccess(Response<Bitmap> response) {
Bitmap body = response.body();
imageView.setImageBitmap(body);
Toast.makeText(MainActivity.this, ""+body.getByteCount(), Toast.LENGTH_SHORT).show();
}
});
}
5.GET下载文件
private void getFile() {
OkGo.<File>post("http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
.execute(new FileCallback() {
@Override
public void onSuccess(Response<File> response) {
File body = response.body();
}
@Override
public void onStart(Request<File, ? extends Request> request) {
super.onStart(request);
}
@Override
public void onError(Response<File> response) {
super.onError(response);
}
@Override
public void onFinish() {
super.onFinish();
}
@Override
public void uploadProgress(Progress progress) {
super.uploadProgress(progress);
}
@Override
public void downloadProgress(Progress progress) {
super.downloadProgress(progress);
progressBar2.setProgress((int) (progress.fraction*100));
}
});
}