日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android okgo参数,Android OkGo基本操作

發布時間:2023/12/10 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android okgo参数,Android OkGo基本操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

或許不是很全面,也都是從網上粘的,自己記下以后使用方便點。如有不對的地方 歡迎指教。

首先添加依賴:

implementation 'com.lzy.net:okgo:3.0.4'

設置初始化和全局配置:

public class App extends Application {

@Override

public void onCreate() {

super.onCreate();

//okGo網絡框架初始化和全局配置

OkHttpClient.Builder builder = new OkHttpClient.Builder();

//builder.cookieJar(new CookieJarImpl(new SPCookieStore(this))); //使用sp保持cookie,如果cookie不過期,則一直有效

builder.cookieJar(new CookieJarImpl(new DBCookieStore(this)));//使用數據庫保持cookie,如果cookie不過期,則一直有效

//builder.cookieJar(new CookieJarImpl(new MemoryCookieStore())); //使用內存保持cookie,app退出后,cookie消失

//設置請求頭

HttpHeaders headers = new HttpHeaders();

headers.put("commonHeaderKey1", "commonHeaderValue1"); //header不支持中文,不允許有特殊字符

headers.put("commonHeaderKey2", "commonHeaderValue2");

//設置請求參數

HttpParams params = new HttpParams();

params.put("commonParamsKey1", "commonParamsValue1"); //param支持中文,直接傳,不要自己編碼

params.put("commonParamsKey2", "這里支持中文參數");

OkGo.getInstance().init(this) //必須調用初始化

.setOkHttpClient(builder.build()) //建議設置OkHttpClient,不設置會使用默認的

.setCacheMode(CacheMode.NO_CACHE) //全局統一緩存模式,默認不使用緩存,可以不傳

.setCacheTime(CacheEntity.CACHE_NEVER_EXPIRE) //全局統一緩存時間,默認永不過期,可以不傳

.setRetryCount(3) //全局統一超時重連次數,默認為三次,那么最差的情況會請求4次(一次原始請求,三次重連請求),不需要可以設置為0

.addCommonHeaders(headers) //全局公共頭

.addCommonParams(params);

}

}

Post請求 使用的是json形式傳參

Map map = new HashMap<>();

map.put("pageNum", 1);

map.put("pageSize", 10);

Gson gson = new Gson();

String json = gson.toJson(map);

OkGo.post(url) //輸入請求地址

.tag(this)//銷毀請求時候會用到

.upJson(json)//上傳參數 如果沒什么需求直接用 .params("key", "paramValue1")

.execute(new StringCallback() {

@Override

public void onSuccess(Response response) {

String body = response.body();

Gson bodyJson = new Gson();

MyBean myBean = bodyJson.fromJson(body, MyBean.class);

Log.d("MainActivity", "============" + myBean.getMsg());

Log.d("MainActivity", "============" + myBean.getData().getList().size());

}

@Override

public void onError(Response response) {

super.onError(response);

}

});

Get請求

OkGo.get(url)

.tag(this)//

.headers("header1", "headerValue1")//

.params("param1", "paramValue1")//

.execute(new StringCallback() {

@Override

public void onSuccess(Response response) {

//注意這里已經是在主線程了

String data = response.body();//這個就是返回來的結果

}

@Override

public void onError(Response response) {

super.onError(response);

}

});

文件上傳

OkGo.post(url)

.tag(this)//

.headers("header1", "headerValue1")//

.headers("header2", "headerValue2")//

.params("param1", "paramValue1")//

.params("param2", "paramValue2")//

// .params("file1",new File("文件路徑")) //這種方式為一個key,對應一個文件

// .params("file2",new File("文件路徑"))

// .params("file3",new File("文件路徑"))

.addFileParams("filename", files) // 這種方式為同一個key,上傳多個文件

.execute(new JsonCallback() {

@Override

public void onStart(Request request) {

btnFormUpload.setText("正在上傳中...");

}

@Override

public void onSuccess(Response response) {

btnFormUpload.setText("上傳完成"+response.body());

}

@Override

public void onError(Response response) {

btnFormUpload.setText("上傳出錯");

}

@Override

public void uploadProgress(Progress progress) {

System.out.println("uploadProgress: " + progress);

}

});

文件下載

OkGo.get(url)

.tag(this)//

.headers("header1", "headerValue1")//

.params("param1", "paramValue1")//

.execute(new FileCallback("OkGo.apk") {

@Override

public void onStart(Request request) {

btnFileDownload.setText("正在下載中");

}

@Override

public void onSuccess(Response response) {

btnFileDownload.setText("下載完成"+response.body());

}

@Override

public void onError(Response response) {

btnFileDownload.setText("下載出錯");

}

@Override

public void downloadProgress(Progress progress) {

System.out.println(progress);

}

});

請求銷毀

@Override

protected void onDestroy() {

super.onDestroy();

//取消指定tag的請求

OkGo.getInstance().cancelTag(this);

//取消全部請求

OkGo.getInstance().cancelAll();

//取消OkHttpClient的全部請求

OkGo.cancelAll(new OkHttpClient());

OkGo.cancelTag(new OkHttpClient(), "且指定tag");

}

基本上就這些了,歡迎大家補充和指點

總結

以上是生活随笔為你收集整理的android okgo参数,Android OkGo基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。