1. 程式人生 > >Okhttp的單例模式封裝

Okhttp的單例模式封裝

import android.content.Context;

import com.bwie.aizhonghui.yuekao_mnone.NetWorkInter.NetWorkInterceptor;

import java.io.IOException;
import java.util.Map;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import 
okhttp3.Response; /** * Created by DANGEROUS_HUI on 2017/10/25. */ public class OkUtils { private Context context; public static OkUtils okhttpInstance; public OkUtils(Context context) { this.context = context; } public static OkUtils getInstance(Context context){ if
(okhttpInstance==null){ synchronized (OkUtils.class){ if(okhttpInstance==null){ okhttpInstance=new OkUtils(context); } } } return okhttpInstance; } public void MyOK(String url, Map<String,String> map, final
Callbacks callbacks){ OkHttpClient okHttpClient=new OkHttpClient(); FormBody.Builder builder=new FormBody.Builder(); for (Map.Entry<String, String> stringStringEntry : map.entrySet()) { builder.add(stringStringEntry.getKey(),stringStringEntry.getValue()); } RequestBody body=builder.build(); final Request request=new Request.Builder() .post(body) .url(url) .build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { callbacks.onFailure(call,e); } @Override public void onResponse(Call call, Response response) throws IOException { callbacks.onResponse(call,response); } }); } public interface Callbacks{ void onFailure(Call call,IOException e); void onResponse(Call call,Response response); } }

相關推薦

Okhttp二次封裝,OkhttpClient使用模式封裝,回撥封裝成主執行緒,日誌攔截器

public class HttpUtils {     private static final String TAG = "HttpUtils";     private static volatile HttpUtils instance;  

Okhttp模式封裝

import android.content.Context; import com.bwie.aizhonghui.yuekao_mnone.NetWorkInter.NetWorkInterceptor; import java.io.IOException; im

php 模式封裝MySQL類

function RR sqli self () tab pub con 實例化 class MysqlConn {  //定義一個私有的靜態屬性,用來存放實例化的對象 private static $dbcon;  //定義一個私有的靜態屬性,用來存在數據庫的連接

使用模式封裝網路工具類(okH)

我是用的是介面傳值,所以第一步是介面的建立 public interface NetWorkModelInterface { //失敗 void failure(Exception e); //成功 void success(String result)

模式封裝的logging類庫的實現(Python)

import logging import sys def __singletion(cls): """ 單例模式的裝飾器函式 :param cls: 實體類 :return: 返回實體類物件 """ instances =

模式 封裝PHP的mysql類

<?php /* *describe:單例模式 資料庫類 單例模式的必要條件 (1)私有的構造方法-為了防止在類外使用new關鍵字例項化物件 (2)私有的成員屬性-為了防止在類外引入這個存放物件的屬性 (3

okHttp的而二次封裝,模式

 import android.os.Environment; import java.io.File; import java.io.IOException; import java.util.Map; import java.util.concurrent.TimeUn

OkHttp的簡單使用以及使用模式新增日誌攔截器

okhttp的簡單使用,主要包含: 一般的get請求 一般的post請求 基於Http的檔案上傳 檔案下載 載入圖片 支援請求回撥,直接返回物件、物件集合 支援session的保持 //新增依賴 implementation 'com.squareup.okhttp3:okh

OkHttp實現多執行緒斷點續傳下載,模式下多工下載管理器,一起拋掉sp,sqlite的輔助吧

        最近專案需要使用到斷點下載功能,筆者比較喜歡折騰,想方設法拋棄SharedPreferences,尤其是sqlite作記錄輔助,改用臨時記錄檔案的形式記錄下載進度,本文以斷點下載為例。先看看demo執行效果圖:               斷點續傳:記

Android studio 封裝請求網路工具類以及實現(包含模式

一般我們在請求網路資料時都會通過一個或多個連結去請求網路資料,但對於一些初學人士都只是在一個類裡或MainActivity做很多操作,這樣的話耦合度太高,程式碼感覺非常繁瑣,專案執行時可能會卡。一般在公司裡面也會要求低耦合,高類聚。這時就會通過封裝工具類來降低耦合度,這樣也就減少了程式碼與程

【JS 設計模式 】用模式(Singleton)來封裝對資料的增刪除改查

單例模式單例模式的核心結構中只包含一個被稱為單例的特殊類。通過單例模式可以保證系統中一個類只有一個例項單例模式最初的定義出現於《設計模式》(艾迪生維斯理, 1994):“保證一個類僅有一個例項,並提供一個訪問它的全域性訪問點。”單例模式定義:“一個類有且僅有一個例項,並且自行

OKHttp模式

 import java.util.concurrent.TimeUnit; import okhttp3.OkHttpClient; /** * Created by d on 2015/

封裝好的模式

public class MyApp extends Application { public static MyApp mInstance; @Override public voi

模式

實現 程序 先來 null effective 如果 ava 不同的 aps 單例模式:確保某一個類只有一個實例,而且自行實例化並向整個系統提供這個實例。 優點: 1、省略創建對象所花費的時間減少系統開銷,尤其是重量級對象。 2、減少對象的創建,減輕GC壓力。 3、設置全局

GOF23—模式(2)

應該 一個 img bsp 漏洞 資源 nbsp 創建 就會 本文介紹單例模式(不包含枚舉單例模式)漏洞問題以及如何防止漏洞   1.反射可以破解單例模式,例子如下:       此時,我們運行Client類,發現s1和s2是一個對象,但s3和s4是不同的對象。 那麽如何防

溫故而知新(java實現)模式的七種寫法

反序 防止 代碼 工作 html 我想 變種 evel 才會 第一種(懶漢,線程不安全): Java代碼 public class Singleton { private static Singleton instance; private S

模式和線程安全

tac 可能 存在 版本 線程不安全 廣東 多線程 一個 單例 前幾天給項目的省市區加了redis。結果上線沒多久就發生了數據錯亂的現象,需要讀取山東省的市可能返回的市廣東的。一開始不明白哪裏有問題,因為測試組的同學有測試過,在測試過程種並沒有發生這樣的情況。由於使用了se

C#模式的多種寫法

code if語句 規則 最簡 lock 實現 readonly led 三種 它的主要特點不是根據客戶程序調用生成一個新的實例,而是控制某個類型的實例數量-唯一一個。(《設計模式-基於C#的工程化實現及擴展》,王翔)。也就是說,單例模式就是保證在整個應用程序的生命周期中,

Swift、Objective-C 模式 (Singleton)

app 賦值 uil imp ide 效果 func instance 發現 本文的單例模式分為嚴格單例模式和不嚴格單例模式。單例模式要求一個類有一個實例,有公開接口可以訪問這個實例。嚴格單例模式,要求一個類只有一個實例;不嚴格單例模式,可以創建多個實例。 有的類只能有一個

模式-Singleton

加載 null 允許 nbsp 訪問 加載類 public tin style 單例模式:保證一個類僅有一個實例,並提一個訪問它的全局訪問點。   通常我們可以讓一個全局變量使得一個對象被訪問,但它不能防止你實例化多個對象。一個最好的辦法就是,讓類自身負責保存它的唯一實例。