Android使用OkHttp例項,以及OkHttp方法封裝
本文在Android中使用OkHttp3實現資料的上傳獲取,圖片的下載
一、在AndroidStudio中新建專案
二、在build.gradle中新增依賴
- compile 'com.squareup.okhttp3:okhttp:3.6.0'
三、新建utils包,並在包中新建OkManager.java 類
- package cc.example.com.utils;
- import android.graphics.Bitmap;
-
import android.graphics.BitmapFactory;
- import android.os.Handler;
- import android.os.Looper;
- import org.json.JSONException;
- import org.json.JSONObject;
- import java.io.IOException;
- import java.util.Map;
- import okhttp3.Call;
- import okhttp3.Callback;
- import okhttp3.FormBody;
- import okhttp3.MediaType;
-
import okhttp3.OkHttpClient;
- import okhttp3.Request;
- import okhttp3.RequestBody;
- import okhttp3.Response;
- /**
- * Created by Administrator on 2017/2/15 0015.
- * 封裝工具類
- * 這一個類主要將OkHttp3工具類進行封裝,用於對資料的傳輸,包括Spring,Json,img,表單等資料的提交與獲取
- */
- publicclass OkManager {
- private OkHttpClient client;
-
privatevolatile
- privatefinal String TAG = OkManager.class.getSimpleName(); //獲得類名
- private Handler handler;
- //提交json資料
- privatestaticfinal MediaType JSON = MediaType.parse("application/json;charset=utf-8");
- //提交字串資料
- privatestaticfinal MediaType MEDIA_TYPE_MARKDOWN = MediaType.parse("text/x-markdown;charset=utf-8");
- private OkManager() {
- client = new OkHttpClient();
- handler = new Handler(Looper.getMainLooper());
- }
- //採用單例模式獲取物件
- publicstatic OkManager getInstance() {
- OkManager instance = null;
- if (manager == null) {
- synchronized (OkManager.class) { //同步程式碼塊
- if (instance == null) {
- instance = new OkManager();
- manager = instance;
- }
- }
- }
- return instance;
- }
- /**
- * 請求返回的是JSON字串
- *
- * @param jsonValue
- * @param callBack
- */
- privatevoid onSuccessJsonStringMethod(final String jsonValue, final Fun1 callBack) {
- handler.post(new Runnable() {
- @Override
- publicvoid run() {
- if (callBack != null) {
- try {
- callBack.onResponse(jsonValue);
- } catch (Exception e) {
- }
- }
- }
- });
- }
- /**
- * 請求返回相應結果的是Json物件
- *
- * @param jsonValue
- * @param callBack
- */
- privatevoid onSuccessJsonObjectMethod(final String jsonValue, final Fun4 callBack) {
- handler.post(new Runnable() {
- @Override
- publicvoid run() {
- if (callBack != null) {
- try {
- callBack.onResponse(new JSONObject(jsonValue));
- } catch (JSONException e) {
- }
- }
- }
- });
- }
- /**
- * 返回響應的物件是一個位元組陣列
- *
- * @param data
- * @param callBack
- */
-
privatevoid onSuccessByteMethod(finalbyte[] data, final
相關推薦
Android使用OkHttp例項,以及OkHttp方法封裝
本文在Android中使用OkHttp3實現資料的上傳獲取,圖片的下載 一、在AndroidStudio中新建專案 二、在build.gradle中新增依賴 compile 'com.squareup.okhttp3:okhttp:3.6.0'
ActiveMQ入門例項,以及類封裝
這篇文章適合已經搭建好了activeMQ環境的人,需要封裝下activeMQ基本功能的人。封裝的不好,僅作參考。package com.quhuhu.sync.util; import javax.jms.Connection; import javax.jms.Conn
關於萬金6.0源碼下載numpy.tile()的重要特性,以及使用方法,超級詳細例子!!!和使用介紹
函數 函數功能 *** 轉換成 ref 在一起 imp 復制。 lis 函數功能萬金6.0源碼下載dsluntan.com 企娥3393756370:按照各個方向復制。 先介紹特性在介紹使用方法 特性之一:對於列表和數組,使用該方法後都會變成數組;對於矩陣,屬性不變還是矩陣
java初學者常見的幾大誤區,以及處理方法!
java初學者常見的幾大誤區,以及處理方法! 小編相信這裡有很多學習java的朋友,小編整理了一份java方面的學習資料,想要獲取的可以加我的java學習群的喲,928204055。歡迎愛學習Java的你們。 誤區四:容易驕傲,以為自己會點技術就得意起來
IO知識點(一)—— Java的 File類,以及常用方法
注意:檔案和資料夾都是用 File 代表 1,建立一個檔案物件 使用絕對路徑或者相對路徑建立 File物件 public class AtWill { public static void main(String[] a
web前端,常用js方法封裝
搜尋總結了一些前端日常開發中,常用的一些方法封裝 var myJs = { /* * 格式化日期 * @param dt 日期物件 * @returns {string} 返回值是格式化的字串日期 */ getDate
09-Python面向物件-物件的生命週期,以及週期方法
學習地址: 撩課-Python大資料+人工智慧1 撩課-Python大資料+人工智慧2 撩課-Python大資料+人工智慧3 撩課-Python大資料+人工智慧4 撩課-Python大資料+人工智慧5 撩課-Python大資料+人工智慧6 撩課-Python-GUI程式設計-PyQt5
對於過濾器中使用getInputStream()、getParameter()接收引數接收不到的一些知識,以及解決方法。
昨天,我需要做一個從主專案分離出來的專案對主專案的功能的呼叫,但是在寫Http傳送Post請求時,遇到了主專案接收不到引數的情況,從而引起了我對專案接收引數的一些探討。 我們知道,對於spring專案接收引數用的最多的方式應該是request.getParam
ZooKeeper叢集搭建例項,以及整合dubbo時的配置
ZooKeeper叢集搭建例項,以及整合dubbo時的配置 zookeeper是什麼: Zookeeper,一種分散式應用的協作服務,是Google的Chubby一個開源的實現,是Hadoop的分散式協調服務,它包含一個簡單的原語集,應用於分散式應用的協作服務,使得分散式
講excel表插入oracle時出現的一些錯誤,以及解決方法
出現這個提示的時候是說明,在插入的employeename這一個欄位裡面有空值,切記,不是空格,是空值,而我們需要做的是看是否是遺漏了這個名字,或者是包含空值這一行不需要,這時刪除就行,具體情況,具體分析。 情況場景: 表A中有個欄位是外來鍵,關聯了表B中的某欄位,
混合使用startService,bindService,以及tartForegroud方法使用總結
一.上次的兩個問題: 1. 在BindService為什麼不呼叫onServiceDisConnection() 類ServiceConnection中的onServiceDisconnected()方法在正常情況下是不被呼叫的,它的呼叫時機是當Service服務
argument type mismatch出現的原因,以及解決方法
原因: Struts的ActionServlet在接受到頁面的請求後,會呼叫RequestUtils.populate方法對Form進行填值,而此方法又呼叫到BeanUtils.populate方法,而該方法進行填值時對不同型別的會進行轉換,而預設的ActionSer
併發程式設計遊玩---ExecutorService的isShutdown()和isTerminated(),以及一些方法的區別
log.info("預更新開始"); ExecutorService executorService = PreloadExecutorServiceUtil.newExecutorService(); for (UpdateEnum updateEnum : UpdateEnu
(常見面試問題)九種基本資料型別的大小,以及他們的封裝類
注:事實上應該是八種基本資料型別,String類並不屬於基本型別。 整型有四種。其中byte和short應用於底層檔案處理或者需要佔據儲存空間量的大陣列。 整型 型別 大小 封裝類 byte 1位元組 Byte short 2位元組 Short int 4位元組 Integer long
帶引數的函式,以及呼叫方法
<!DOCTYPE html><html><head><title>帶引數的函式</title></head><body><script>// 1.函式引數:// 在函式的呼叫中,
深入學習Hibernate4_05hibernate中物件的四種狀態(臨時狀態,持久化狀態,遊離狀態,刪除狀態),以及常用方法的介紹
是什麼? 站在持久化的角度, Hibernate 把物件分為 4 種狀態: 持久化狀態, 臨時狀態, 遊離狀態, 刪除狀態. Session 的特定方法能使物件從一個狀態轉換到另一個狀態. 臨時物件:1.在使用代理主鍵的情況下,OID通常為null
vue安裝環境過程出現的問題,以及解決方法。
安裝完一次npm,下載了小demo後,過一段時間再去用vue忘記環境已經安裝好,再次安裝時,由於npm安裝時下載不全,一直在報錯,試用了很多方法,cmd 指令安裝vue-cli一直報錯,最後我還是選擇在原來demo 下修改,之前報Error: Cannot find mod
請求被中止: 未能建立 SSL/TLS 安全通道,以及解決方法。
場景描述: 我公司的網站之前就已經開發好了下單支援paypal支付,當然,這個是其他同事開發的。前段時間,主管讓我在另一個場景開發支援使用paypal支付,當時花了些時間看看關於paypal程式碼,然後就嘗試著寫了,雖然程式碼不多,很快就寫完了。不過接下來遇到的問題真的很頭疼,在沙盒模式下除錯,一直會跳出異
由於ndk引發的幾個bug,以及解決方法
問題一: Error:(12, 0) Error: NDK integration is deprecated in the current plugin. Consider trying th
關係型資料庫和非關係型資料庫的選擇,以及替代方法(mysql替代mongodb)
1、在以上方式設計的bussDB庫的狀態下,對於增刪改查操作,關係型資料庫和非關係型資料庫的效能開銷基本一致,因為所有表的資料量都非常小,小於百萬級,因為在千萬級資料量以下,關係型資料庫只要設定了索引,都是非常快的。 2、在效能方面一致的情況下,非關係資料庫的缺點在於無法支援動態連線查詢應用,即sql中的jo