package cgg.com.homework.NetUtil; import android.os.Environment; import java.io.File; import java.util.Map; import java.util.concurrent.TimeUnit; import okhttp3.Cache; import okhttp3.Call; import okhttp3.Callback; import okhttp3.FormBody; import okhttp3.MultipartBody; import okhttp3.OkHttpClient; import okhttp3.Request; /** * author: Wanderer * date: 2018/1/9 16:38 * email: none */ public class OkHttpUtil { private OkHttpClient okHttpClient; public OkHttpClient getInstance() { if(okHttpClient == null){ // 設置緩存目錄 File okHttPCache = new File(Environment.getExternalStorageDirectory(), "cache"); // 設置緩存大小 int cacheSize = 10*1024*1024; synchronized (OkHttpUtil.class){ okHttpClient = new OkHttpClient.Builder() // 構建者 .connectTimeout(15, TimeUnit.SECONDS) // 連接超時 .readTimeout(15,TimeUnit.SECONDS) // 讀取超時 .writeTimeout(15,TimeUnit.SECONDS) // 寫入超時 .cache(new Cache(okHttPCache.getAbsoluteFile(),cacheSize)) // 設置緩存 .build(); // 閉環 } } return okHttpClient; } /** * get請求 */ public void doGet(String url, Callback callback){ // 獲取OkHttpClient對象 OkHttpClient mHttpClient = getInstance(); // 獲取Request對象 Request request = new Request.Builder().url(url).build(); // 獲取Call對象 Call call = mHttpClient.newCall(request); // 執行異步請求 call.enqueue(callback); } /** * post請求 */ public void doPost(String url, Map<String,String> parameters,Callback callback){ // 獲取OkHttpClient對象 OkHttpClient mHttpClient = getInstance(); // 獲取構建者 FormBody.Builder builder = new FormBody.Builder(); // 遍歷集合 for (String key: parameters.keySet()) { // 添加上傳的參數 builder.add(key,parameters.get(key)); } // 獲取Request對象 Request request = new Request.Builder().url(url).post(builder.build()).build(); // 獲取Call Call call = mHttpClient.newCall(request); // 執行請求 call.enqueue(callback); } }
okHttpClient--post/get請求
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.