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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

android okgo参数,Android OkGo基本操作

發(fā)布時(shí)間:2023/12/10 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android okgo参数,Android OkGo基本操作 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

或許不是很全面,也都是從網(wǎng)上粘的,自己記下以后使用方便點(diǎn)。如有不對(duì)的地方 歡迎指教。

首先添加依賴:

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

設(shè)置初始化和全局配置:

public class App extends Application {

@Override

public void onCreate() {

super.onCreate();

//okGo網(wǎng)絡(luò)框架初始化和全局配置

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

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

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

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

//設(shè)置請(qǐng)求頭

HttpHeaders headers = new HttpHeaders();

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

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

//設(shè)置請(qǐng)求參數(shù)

HttpParams params = new HttpParams();

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

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

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

.setOkHttpClient(builder.build()) //建議設(shè)置OkHttpClient,不設(shè)置會(huì)使用默認(rèn)的

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

.setCacheTime(CacheEntity.CACHE_NEVER_EXPIRE) //全局統(tǒng)一緩存時(shí)間,默認(rèn)永不過(guò)期,可以不傳

.setRetryCount(3) //全局統(tǒng)一超時(shí)重連次數(shù),默認(rèn)為三次,那么最差的情況會(huì)請(qǐng)求4次(一次原始請(qǐng)求,三次重連請(qǐng)求),不需要可以設(shè)置為0

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

.addCommonParams(params);

}

}

Post請(qǐng)求 使用的是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) //輸入請(qǐng)求地址

.tag(this)//銷毀請(qǐng)求時(shí)候會(huì)用到

.upJson(json)//上傳參數(shù) 如果沒(méi)什么需求直接用 .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請(qǐng)求

OkGo.get(url)

.tag(this)//

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

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

.execute(new StringCallback() {

@Override

public void onSuccess(Response response) {

//注意這里已經(jīng)是在主線程了

String data = response.body();//這個(gè)就是返回來(lái)的結(jié)果

}

@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("文件路徑")) //這種方式為一個(gè)key,對(duì)應(yīng)一個(gè)文件

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

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

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

.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("上傳出錯(cuò)");

}

@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("下載出錯(cuò)");

}

@Override

public void downloadProgress(Progress progress) {

System.out.println(progress);

}

});

請(qǐng)求銷毀

@Override

protected void onDestroy() {

super.onDestroy();

//取消指定tag的請(qǐng)求

OkGo.getInstance().cancelTag(this);

//取消全部請(qǐng)求

OkGo.getInstance().cancelAll();

//取消OkHttpClient的全部請(qǐng)求

OkGo.cancelAll(new OkHttpClient());

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

}

基本上就這些了,歡迎大家補(bǔ)充和指點(diǎn)

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。