設(shè)計模式——單例模式(餓漢模式)

MyTask類

package com.example.okhttpdemo;

import android.os.Environment;

import java.io.File;

import java.io.IOException;

import java.util.concurrent.TimeUnit;

import okhttp3.Cache;

import okhttp3.CacheControl;

import okhttp3.Call;

import okhttp3.Callback;

import okhttp3.FormBody;

import okhttp3.OkHttpClient;

import okhttp3.Request;

import okhttp3.Response;

/**

* Created by leon on 2017/12/19.

*/

public class MyOkHttp {

private OkHttpClient ok;

private Cache cache;

private long maxSize = 8 * 1024 * 1024 ;

private static MyOkHttp okHttp = new MyOkHttp();

private MyOkHttp(){

//獲取手機根目錄并在根目錄下建一個文件夾:

//Environment是用來管理手機SDCard內(nèi)存的

File file = new File( Environment.getExternalStorageDirectory() + "/H1706A");

cache = new Cache( file,maxSize );

ok = new OkHttpClient.Builder().cache( cache ).build();

}

public static MyOkHttp getOkHttp(){

return okHttp;

}

//同步get請求:

public String sendGet(String url) throws IOException {

Request request = new Request.Builder().url( url ).build();

Response response = ok.newCall( request ).execute();

String string = response.body().string();

return string;

}

//同步post請求:

public String sendPost(String url, FormBody body) throws IOException {

Request request = new Request.Builder().url( url ).post( body ).build();

Response response = ok.newCall( request ).execute();

String s = response.body().string();

return s;

}

//異步get請求:

public void sendGetAnsy(String url,Callback callback) throws IOException {

Request request = new Request.Builder().url( url ).build();

ok.newCall( request ).enqueue( callback );;

}

//異步post請求:

public void sendPostAnsync(String url,FormBody body,Callback callback){

Request request = new Request.Builder().url( url ).post( body ).build();

ok.newCall( request ).enqueue( callback );

}

//測試緩存:

public String sendCacheGet(String url) throws IOException {

Request request = new Request.Builder().url( url ).cacheControl( new CacheControl.Builder().maxStale( 24*60*60, TimeUnit.DAYS ).build() ).build();

Response response = ok.newCall( request ).execute();

String s = response.body().string();

return s;

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,659評論 19 139
  • //導okhttp依賴compile 'com.squareup.okhttp3:okhttp:3.8.1' pu...
    沒錢一定要騷閱讀 2,548評論 1 2
  • 面試使人能夠更正確的認識自己,通過這一輪的面試,我發(fā)現(xiàn)自己的基礎(chǔ)知識還是有欠缺的。而且我的記性是真不好,很多寫...
    kim_liu閱讀 649評論 0 2
  • 在包名下單獨建一個包 wxapi =========== import android.graphics.Bit...
    未聞椛洺閱讀 1,055評論 0 1
  • 何為視覺差,當初找效果的時候,也不知道如何搜索,后來知道了視差Parallax這個詞,我這里寫的效果是,在頁面滾動...
    BestJoker閱讀 3,500評論 3 16

友情鏈接更多精彩內(nèi)容