导入依赖:implementation ‘com.lzy.net:okgo:3.0.4’
Okgo的底层是Okhhttp (拦截器 不用写 自带)
Okgo中<……>是它的类型 注意 不同的用途不要写错
Okgo中.params(请求体),.execute(Callback())中重写的方法有:{
@Override
public void onStart(Request<Object, ? extends Request> request) {
开始
}
@Override
public void onSuccess(Response<Object> response) {
成功
}
@Override
public void onCacheSuccess(Response<Object> response) {
}
@Override
public void onError(Response<Object> response) {
失败(错误)
}
@Override
public void onFinish() {
完成
}
@Override
public void uploadProgress(Progress progress) {
上传时候的进度条
}
@Override
public void downloadProgress(Progress progress) {
下载时候的进度条
}
@Override
public Object convertResponse(okhttp3.Response response) throws Throwable {
return null;
}
}
下载图片:
button_img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OkGo.<Bitmap>get("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1562587162663&di=58b961a5726901f5d3b97f8924ddc189&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201811%2F10%2F20181110102045_jwqny.jpg")
.execute(new BitmapCallback() {
@Override
public void onSuccess(Response<Bitmap> response) {
imageView.setImageBitmap(response.body());
}
@Override
public void onError(Response<Bitmap> response) {
super.onError(response);
Toast.makeText(MainActivity.this, "no", Toast.LENGTH_SHORT).show();
}
});
}
});
get请求
button_a.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OkGo.<String>get("")
.execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(Response<String> response) {
super.onError(response);
Toast.makeText(MainActivity.this, "失败", Toast.LENGTH_SHORT).show();
}
});
}
});
post请求
//请求体
final HashMap<String, String> map = new HashMap<>();
map.put("","");
map.put("","");
button_b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OkGo.<String>post("")
.params(map)
.execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(Response<String> response) {
super.onError(response);
Toast.makeText(MainActivity.this, "失败", Toast.LENGTH_SHORT).show();
}
});
}
});
```
**上传:**
button_c.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OkGo.<String>post("http://169.254.184.179/hfs/").isMultipart(true).params("file",new File("/sdcard/怪声飘过.mp3"),"a.mp3")
.execute(new StringCallback(){
@Override
public void onSuccess(Response<String> response) {
Toast.makeText(MainActivity.this, ""+response.body(), Toast.LENGTH_SHORT).show();
}
@Override
public void onError(Response<String> response) {
super.onError(response);
Toast.makeText(MainActivity.this, ""+response.message(), Toast.LENGTH_SHORT).show();
}
@Override
public void uploadProgress(Progress progress) {
super.uploadProgress(progress);
//progress.fraction 获得当前上传进度 范围0-1
bar_a.setProgress((int) (progress.fraction*100));
}
});
}
});
```
下载:(注意类型 File)
button_d.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OkGo.<File>get("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1562587162663&di=58b961a5726901f5d3b97f8924ddc189&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201811%2F10%2F20181110102045_jwqny.jpg")
.execute(new FileCallback("/sdcard/","a.jpg") {
@Override
public void onSuccess(Response<File> response) {
Toast.makeText(MainActivity.this, "ok", Toast.LENGTH_SHORT).show();
}
@Override
public void downloadProgress(Progress progress) {
super.downloadProgress(progress);
float fraction = progress.fraction;
bar_b.setProgress((int) (fraction*100));
}
});
}
});