OkGo的Get和Post请求
package com.bw.day4_okgo;
import androidx.appcompat.app.AppCompatActivity;
import android.bluetooth.le.ScanCallback;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Response;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void getclick(View view){
OkGo.<String>get(" http://43.143.146.165:7777/foods/getFoods?currentPage=1&pageSize=10").execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
String s = response.body().toString();
Log.i("---body", s);
}
});
}
public void postclick(View view){
OkGo.<String>post(" http://43.143.146.165:7777/foods/postFoods").params("pageSize","10").params("currentPage","1").execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
String s = response.body().toString();
Log.i("---body",s);
}
});
}
}
上传和下载 图片视频都适用文件名只支持英文
里面有进度条
//下载
public void downclick(View view) {
OkGo.<File>get("http://10.161.11.21/asd/%E6%99%9A%E9%A3%8E.mp3").execute(new FileCallback("/sdcard","晚风.mp3") {
@Override
public void onSuccess(Response<File> response) {
}
@Override
public void downloadProgress(Progress progress) {
super.downloadProgress(progress);
sb.setProgress((int)progress.fraction*100);
}
});
}
//上传
public void upclick(View view) {
OkGo.<String>post("http://10.161.11.21/asd/")
.params("file",new File("/sdcard/晚风.mp3")).execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
}
@Override
public void uploadProgress(Progress progress) {
super.uploadProgress(progress);
sb2.setProgress((int)progress.fraction*100);
}
});
}
单例
package com.bw.day4_okgo.utils;
import com.bw.day4_okgo.callback.MyCallback;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Response;
import java.util.HashMap;
public class OkGoUtils {
private OkGoUtils (){}
private static volatile OkGoUtils okGoUtils=null;
public static OkGoUtils getInstance(){
if(okGoUtils==null){
synchronized (OkGoUtils.class){
if (okGoUtils==null){
okGoUtils=new OkGoUtils();
}
}
}
return okGoUtils;
}
//get请求
public void doget(String path, MyCallback myCallback){
OkGo.<String>get(path).execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
myCallback.ok(response.body());
}
});
}
//post请求
public void dopost(String path, HashMap<String,String> stringHashMap, MyCallback myCallback){
OkGo.<String>post(path).params(stringHashMap).execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
myCallback.ok(response.body());
}
});
}
}
工具类的调用
package com.bw.day4_okgo.controller;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import com.bw.day4_okgo.R;
import com.bw.day4_okgo.adapter.FoodAdaptry;
import com.bw.day4_okgo.callback.MyCallback;
import com.bw.day4_okgo.entity.FoodEntity;
import com.bw.day4_okgo.model.MyModelsx;
import com.google.gson.Gson;
import java.util.HashMap;
import java.util.List;
public class MainActivity2 extends AppCompatActivity {
MyModelsx myModelsx=new MyModelsx();
private ListView lv,lv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
lv = (ListView) findViewById(R.id.lv);
lv2 = (ListView) findViewById(R.id.lv2);
myModelsx.doget("http://43.143.146.165:7777/foods/getFoods?currentPage=1&pageSize=10", new MyCallback() {
@Override
public void ok(String json) {
List<FoodEntity.DataDTO> data = new Gson().fromJson(json, FoodEntity.class).getData();
FoodAdaptry foodAdaptry = new FoodAdaptry(MainActivity2.this, data);
lv.setAdapter(foodAdaptry);
}
@Override
public void error(String json) {
}
});
HashMap<String, String> stringStringHashMap = new HashMap<>();
stringStringHashMap.put("pageSize","10");
stringStringHashMap.put("currentPage","1");
myModelsx.dopost("http://43.143.146.165:7777/foods/postFoods", stringStringHashMap, new MyCallback() {
@Override
public void ok(String json) {
List<FoodEntity.DataDTO> data = new Gson().fromJson(json, FoodEntity.class).getData();
FoodAdaptry foodAdaptry = new FoodAdaptry(MainActivity2.this, data);
lv2.setAdapter(foodAdaptry);
}
@Override
public void error(String json) {
}
});
}
}