OKGO

第四单元
OkGo框架
作用:网络请求的框架(okhttp)
功能:上传
下载(图片,文件MP3,字符串)
案例:
1.get下载图片
Okgo.get(url).execute(new StringCallBack/new FileCallBack/new BitMapCallBack){
Public void onSuccess(Response r){
String json=r.body();
File f=r.body();
}
Public void downLoadProgress(Progress progress){
Progress.fraction*100;//火的当前进度
}
}
2.post上传
OkGo.post(url).isMultipart(true).params(“file”,new File(),”aa.mp3”)execute(new StringCallBack);.
3.post上传参数(登录注册)
HashMap m=new HashMap();
M.put(“name”,”12”);
OkGo.post(url).params(“file”,new File(),”aa.mp3”)execute(new StringCallBack);.
4.下载带解析
(1)定义结果接口 inteface Result onSuccess(T o);
(2)方法(三件事情,下载Json串,解析,传输给接口)
第五单元
Glide作用:下载图片,下载的同时可以设置为圆形圆角
方法:
RequestOptions requestOptions = new RequestOptions();
requestOptions.circleCrop();
requestOptions.error(R.mipmap.ic_launcher_round);
requestOptions.placeholder(R.mipmap.ic_launcher_round);
RoundedCorners roundedCorners = new RoundedCorners(20);
requestOptions.transform(roundedCorners);
Glide.with(context).load(url).into(imageView);

package com.example.okgo.Utils;

import android.os.Environment;
import android.util.Log;

import com.example.okgo.Interface.JsonInterface;
import com.google.gson.Gson;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.FileCallback;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Progress;
import com.lzy.okgo.model.Response;

import java.io.File;

public class OkGoUtil {
private static final String TAG = “OkGoUtil”;
public void downLoadMp4Method() {
OkGo .get(“http://uvideo.spriteapp.cn/video/2019/0512/56488d0a-7465-11e9-b91b-1866daeb0df1_wpd.mp4”).execute(new FileCallback("/mnt/sdcard",“downLoad.mp4”) {
@Override
public void onSuccess(Response< File > response) {
File body = response.body();
}

    @Override
    public void downloadProgress(Progress progress) {
        super.downloadProgress(progress);

// mBar.setProgress((int)progress.fraction*100);
}
});
}

public void downLoadJson(String url, Class c, final JsonInterface jsonInterface){
    OkGo.get(url).execute(new StringCallback() {
        @Override
        public void onSuccess(Response response) {
            String body = response.body();
            Gson gson = new Gson();
            JsonBeanTest test = gson.fromJson(body, JsonBeanTest.class);
            jsonInterface.onSuccess(test);
        }
    });
}

public void upLoadMp4Method(){
    OkGo.post("http://169.254.137.51/test/").isMultipart(true).params("file",new File("1705A.mp4"),"aaa.mp4").execute(new StringCallback() {
        @Override
        public void onSuccess(Response response) {
            Log.i(TAG, "onSuccess: 上传成功");
        }
    });
}

}

package com.example.okgo;

import android.graphics.Bitmap;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;

import com.example.okgo.Interface.JsonInterface;
import com.example.okgo.Utils.ImageLoaderUtil;
import com.example.okgo.Utils.JsonBeanTest;
import com.example.okgo.Utils.OkGoUtil;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.BitmapCallback;
import com.lzy.okgo.callback.FileCallback;
import com.lzy.okgo.model.Progress;
import com.lzy.okgo.model.Response;

import java.io.File;

public class MainActivity extends AppCompatActivity {
private static final String TAG = “MainActivity”;
private Button mDownLoadJson;
private Button mDownLoadPic;
private Button mDownLoadmp4;
private ProgressBar mBar;
private ImageView mImage;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mDownLoadJson = findViewById(R.id.downLoadJson);
    mDownLoadPic = findViewById(R.id.downLoadPic);
    mDownLoadmp4 = findViewById(R.id.downLoadmp4);
    mBar = findViewById(R.id.bar);
    mImage = findViewById(R.id.image);


}

public void click(View view) {
    switch (view.getId()){
        case R.id.downLoadJson:
            downLoadJsonMethod();
            break;
        case R.id.downLoadmp4:
            downLoadMp4Method();
            break;
        case R.id.downLoadPic:
            downLoadPicMethod();
            break;
        case R.id.upLoadmp4:
            up();
            break;
    }
}

private void up() {
    new Thread(){
        @Override
        public void run() {
            super.run();
            OkGoUtil okGoUtil = new OkGoUtil();
            okGoUtil.upLoadMp4Method();
        }
    }.start();
}

private void downLoadPicMethod() {
    new Thread(){
        @Override
        public void run() {
            super.run();
            OkGo.get("http://img03.sogoucdn.com/app/a/100520021/566245e9479746f2aae8c908bdbb6842").execute(new BitmapCallback() {
                @Override
                public void onSuccess(Response response) {
                    Bitmap body = response.body();
                    ImageLoaderUtil imageLoaderUtil = new ImageLoaderUtil();
                    imageLoaderUtil.loadImage(MainActivity.this,"http://img03.sogoucdn.com/app/a/100520021/566245e9479746f2aae8c908bdbb6842",mImage);

// mImage.setImageBitmap(body);
}
});
}
}.start();
}

private void downLoadMp4Method() {
    new Thread(){
        @Override
        public void run() {
            super.run();

            OkGoUtil okGoUtil = new OkGoUtil();
            okGoUtil.downLoadMp4Method();
        }
    }.start();
}

private void downLoadJsonMethod() {
    new Thread(){
        @Override
        public void run() {
            super.run();
            OkGoUtil okGoUtil = new OkGoUtil();
            okGoUtil.downLoadJson("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=1", JsonBeanTest.class, new JsonInterface() {
                @Override
                public void onSuccess(JsonBeanTest.DataBean o) {
                    Log.i(TAG, "onSuccess: "+o.toString());
                }
            });
        }
    }.start();

}

}

你可能感兴趣的:(OKGO)