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

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內存的

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;

}

}

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

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