OkGo
MainActivity 用Okgo获取数据
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button bt_get;
private Button bt_post;
private Button bt_downLoad;
private SeekBar seekbar;
private Button bt_upLoad;
private String get_url = "http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1";
private String post_url = "http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&";
private String down_url = "http://p1.music.126.net/yC_df5u0myXVp-bM99K3Lw==/5870292580832850.jpg";
private String up_url = "http://10.1.4.52/hfs/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE},100);
initView();
}
private void initView() {
bt_get = (Button) findViewById(R.id.bt_get);
bt_post = (Button) findViewById(R.id.bt_post);
bt_downLoad = (Button) findViewById(R.id.bt_downLoad);
seekbar = (SeekBar) findViewById(R.id.seekbar);
bt_upLoad = (Button) findViewById(R.id.bt_upLoad);
bt_get.setOnClickListener(this);
bt_post.setOnClickListener(this);
bt_downLoad.setOnClickListener(this);
bt_upLoad.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_get:
doget();
break;
case R.id.bt_post:
dopost();
break;
case R.id.bt_downLoad:
download();
break;
case R.id.bt_upLoad:
upload();
break;
}
}
private void upload() {
OkGo.<File>post(up_url).isMultipart(true).params("file",new File("/storage/emulated/0/houzi.mp4"),"bbbb.mp4").execute(new FileCallback() {
@Override
public void onSuccess(Response<File> response) {
Toast.makeText(MainActivity.this, "上传成功", Toast.LENGTH_SHORT).show();
}
});
}
private void download() {
OkGo.<File>get(down_url).execute(new FileCallback("/storage/emulated/0","aaaaa.jpg") {
@Override
public void onSuccess(Response<File> response) {
Toast.makeText(MainActivity.this, "下载完成", Toast.LENGTH_SHORT).show();
}
@Override
public void downloadProgress(Progress progress) {
super.downloadProgress(progress);
seekbar.setProgress((int) (progress.fraction*100));
}
});
}
private void dopost() {
HashMap<String,String> map = new HashMap<>();
map.put("limit","20");
map.put("page","1");
OkGo.<String>post(post_url).params(map).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, Toast.LENGTH_SHORT).show();
}
});
}
private void doget() {
OkGo.<String>get(get_url).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.body(), Toast.LENGTH_SHORT).show();
}
});
}
}
OkGo的二次封装
自定义JsonCallBack抽象类 继承自AbsCallBack
public abstract class JsonCallBack<T> extends AbsCallback<T> {
private Class<T> tClass;
public JsonCallBack(Class<T> tClass) {
this.tClass = tClass;
}
@Override
public T convertResponse(Response response) throws Throwable {
ResponseBody body = response.body();
if (body == null){
return null;
}
String json = body.string();
Gson gson = new Gson();
if (tClass==null){
return null;
}
T t = gson.fromJson(json, tClass);
return t;
}
}
MainActivity 获取数据
public class Main2Activity extends AppCompatActivity implements View.OnClickListener {
private String url_xia = "http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1";
private String url_dou = "https://www.apiopen.top/satinApi?type=1&page=2";
private String url_banner = "http://api.yunzhancn.cn/api/app.interface.php?siteid=78703&itemid=2&act=ad_app";
private Button bt_xia;
private Button bt_dou;
private Button bt_banner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initView();
}
private void initView() {
bt_xia = (Button) findViewById(R.id.bt_xia);
bt_dou = (Button) findViewById(R.id.bt_dou);
bt_banner = (Button) findViewById(R.id.bt_banner);
bt_xia.setOnClickListener(this);
bt_dou.setOnClickListener(this);
bt_banner.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_xia:
OkGo.<XiaBean>get(url_xia).execute(new JsonCallBack<XiaBean>(XiaBean.class) {
@Override
public void onSuccess(Response<XiaBean> response) {
List<XiaBean.DataBean> data = response.body().getData();
String title = data.get(0).getTitle();
Toast.makeText(Main2Activity.this, ""+title, Toast.LENGTH_SHORT).show();
}
});
break;
case R.id.bt_dou:
OkGo.<DouBean>get(url_dou).execute(new JsonCallBack<DouBean>(DouBean.class) {
@Override
public void onSuccess(Response<DouBean> response) {
DouBean douBean = response.body();
Toast.makeText(Main2Activity.this, ""+douBean, Toast.LENGTH_SHORT).show();
}
});
break;
case R.id.bt_banner:
OkGo.<BannerBean[]>get(url_banner).execute(new JsonCallBack<BannerBean[]>(BannerBean[].class) {
@Override
public void onSuccess(Response<BannerBean[]> response) {
BannerBean[] bannerBeans = response.body();
int length = bannerBeans.length;
Toast.makeText(Main2Activity.this, ""+length, Toast.LENGTH_SHORT).show();
}
});
break;
}
}
}