Explorar o código

优化请求方法

YanYi %!s(int64=7) %!d(string=hai) anos
pai
achega
d6d0c8c6bb

+ 36 - 0
.idea/inspectionProfiles/Project_Default.xml

@@ -0,0 +1,36 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="TOP_LEVEL_CLASS_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="" />
+        </value>
+      </option>
+      <option name="INNER_CLASS_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="" />
+        </value>
+      </option>
+      <option name="METHOD_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="@return@param@throws or @exception" />
+        </value>
+      </option>
+      <option name="FIELD_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="" />
+        </value>
+      </option>
+      <option name="IGNORE_DEPRECATED" value="false" />
+      <option name="IGNORE_JAVADOC_PERIOD" value="true" />
+      <option name="IGNORE_DUPLICATED_THROWS" value="false" />
+      <option name="IGNORE_POINT_TO_ITSELF" value="false" />
+      <option name="myAdditionalJavadocTags" value="date" />
+    </inspection_tool>
+  </profile>
+</component>

+ 0 - 1
app/src/main/java/com/mylove/okhttp/AppContext.java

@@ -15,7 +15,6 @@ public class AppContext extends Application {
     @Override
     public void onCreate() {
         super.onCreate();
-//        JLog.init(BuildConfig.LOG_DEBUG);
         JLog.init(true);
     }
 }

+ 43 - 24
app/src/main/java/com/mylove/okhttp/MainActivity.java

@@ -8,6 +8,9 @@ import android.support.v7.app.AppCompatActivity;
 
 import com.mylove.loglib.JLog;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import didikee.com.permissionshelper.PermissionsHelper;
 import didikee.com.permissionshelper.permission.DangerousPermissions;
 
@@ -21,7 +24,9 @@ import didikee.com.permissionshelper.permission.DangerousPermissions;
 
 public class MainActivity extends AppCompatActivity {
 
-    // app所需要的全部危险权限
+    /**
+     * app所需要的全部危险权限
+     */
     static final String[] PERMISSIONS = new String[]{DangerousPermissions.STORAGE};
     private PermissionsHelper permissionsHelper;
 
@@ -32,7 +37,7 @@ public class MainActivity extends AppCompatActivity {
         setPermissions();
     }
 
-    private void setPermissions(){
+    private void setPermissions() {
         permissionsHelper = new PermissionsHelper(this, PERMISSIONS, true);
         if (permissionsHelper.checkAllPermissions(PERMISSIONS)) {
             permissionsHelper.onDestroy();
@@ -59,12 +64,14 @@ public class MainActivity extends AppCompatActivity {
             }
 
             //用户已经永久的拒绝了
+            @Override
             public void hasLockForever() {
                 JLog.i("hasLockForever");
                 permissionsHelper.setParams(null);
             }
 
             //被拒绝后,在最后一次申请权限之前
+            @Override
             public void onBeforeRequestFinalPermissions(PermissionsHelper helper) {
                 JLog.i();
                 helper.continueRequestPermissions();
@@ -73,38 +80,50 @@ public class MainActivity extends AppCompatActivity {
     }
 
     private void data() {
-        String url = "https://www.yjw1020.club/index/img/Ta_01.jpg";
-        JLog.v(url);
-        OkHttpUtil.getInstance(this).downloadFile(url).sync(null, new onOkHttpListener<String, String>() {
-
-            public void onCompleted() {
-
-            }
-
-            public void onSuccess(String s) {
-                JLog.v(s);
-            }
-
-            public void onFailure(String s) {
-                JLog.v(s);
-            }
-        });
-//        String url = "https://www.yjw1020.club/api/myIndex.php";
-//        Map<Object, Object> oMap = new HashMap<>();
-//        oMap.put("type", "1");
-//        OkHttpUtil.getInstance(this).post(url).async(oMap, new onOkHttpListener<String, String>() {
+        String url = "http://123.56.176.15:8890/SunshineMedicineWebservice/SunshineMedicineWebservice.asmx/_getDeptUploadSQL";
+        Map<Object, Object> oMap = new HashMap<>();
+        oMap.put("strDeptSN", "MDI6MDA6MDA6MDA6MDA6MDA=");
+        oMap.put("strDeptKind", "1");
+        int[] ints = new int[]{11, 12, 13, 14, 15};
+        for (int i : ints) {
+            oMap.put("strDataKind", i + "");
+            OkHttpUtil.getInstance(this).post(url).async(oMap, new onOkHttpListener() {
+                @Override
+                public void onCompleted() {
+
+                }
+
+                @Override
+                public void onSuccess(ResultMsg requestMsg) {
+                    JLog.v(requestMsg);
+                }
+
+                @Override
+                public void onFailure(Throwable t) {
+                    JLog.v(t);
+                }
+            });
+        }
+//        String url = "https://www.yjw1020.club/index/img/Ta_01.jpg";
+//        OkHttpUtil.getInstance(this).downloadFile(url).sync(null, new onOkHttpListener() {
+//
+//            @Override
 //            public void onCompleted() {
+//
 //            }
 //
-//            public void onSuccess(String s) {
+//            @Override
+//            public void onSuccess(ResultMsg s) {
 //                JLog.v(s);
 //            }
 //
-//            public void onFailure(String s) {
+//            @Override
+//            public void onFailure(Throwable s) {
 //                JLog.v(s);
 //            }
 //        });
     }
+
     @Override
     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                            @NonNull int[] grantResults) {

+ 4 - 1
okhttp2/src/main/AndroidManifest.xml

@@ -1,2 +1,5 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.mylove.okhttp" />
+    package="com.mylove.okhttp" >
+
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+</manifest>

+ 2 - 2
okhttp2/src/main/java/com/mylove/okhttp/AutoRequest.java

@@ -34,11 +34,11 @@ public class AutoRequest {
         return instance;
     }
 
-    public void sync(Map<Object, Object> oMap, onOkHttpListener<String, String> onOkHttpListener) {
+    public void sync(Map<Object, Object> oMap, onOkHttpListener onOkHttpListener) {
         ObservableRequest.getInstance(mContext, requestType, CallType.SYNC).request(url, oMap, onOkHttpListener);
     }
 
-    public void async(Map<Object, Object> oMap, onOkHttpListener<String, String> onOkHttpListener) {
+    public void async(Map<Object, Object> oMap, onOkHttpListener onOkHttpListener) {
         ObservableRequest.getInstance(mContext, requestType, CallType.ASYNC).request(url, oMap, onOkHttpListener);
     }
 }

+ 1 - 0
okhttp2/src/main/java/com/mylove/okhttp/CacheInterceptor.java

@@ -14,6 +14,7 @@ import okhttp3.Response;
  */
 
  class CacheInterceptor implements Interceptor {
+    @Override
     public Response intercept(Chain chain) throws IOException {
         Request request = chain.request();
         Response response = chain.proceed(request);

+ 2 - 2
okhttp2/src/main/java/com/mylove/okhttp/CacheUtils.java

@@ -44,7 +44,7 @@ class CacheUtils {
      * @param url  文件名
      * @param json
      */
-    public void setCacheToLocalJson(String url, String json) {
+    void setCacheToLocalJson(String url, String json) {
         String urlMD5 = MD5keyUtil.newInstance().getkeyBeanofStr(url);
         String path = realFile.getAbsolutePath() + "/" + urlMD5;
         try {
@@ -71,7 +71,7 @@ class CacheUtils {
      * @param url
      * @return
      */
-    public String getCacheToLocalJson(String url) {
+    String getCacheToLocalJson(String url) {
         StringBuffer sb = new StringBuffer();
         String urlMD5 = MD5keyUtil.newInstance().getkeyBeanofStr(url);
         // 创建缓存文件夹

+ 34 - 35
okhttp2/src/main/java/com/mylove/okhttp/DownloadCall.java

@@ -4,8 +4,6 @@ import android.annotation.SuppressLint;
 import android.content.Context;
 import android.support.annotation.NonNull;
 
-import com.mylove.loglib.JLog;
-
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -32,14 +30,15 @@ class DownloadCall {
     @SuppressLint("StaticFieldLeak")
     private static Context mContext;
     private String url;
-    private Subscriber<? super String> subscriber;
+    private Subscriber<? super ResultMsg> subscriber;
     private Call call;
     @SuppressLint("StaticFieldLeak")
     private static DownloadCall instance;
     private CallType callType;
     private static OkHttpClient okHttpClient;
+    private String fileName;
 
-    private DownloadCall(String url, Request request, Subscriber<? super String> subscriber, CallType callType) {
+    private DownloadCall(String url, Request request, Subscriber<? super ResultMsg> subscriber, CallType callType) {
         this.url = url;
         this.subscriber = subscriber;
         this.call = okHttpClient.newCall(request);
@@ -56,7 +55,7 @@ class DownloadCall {
      * @param callType   请求类型
      * @return
      */
-    static DownloadCall getInstance(Context context, String mCacheUrl, Request request, Subscriber<? super String> subscriber, CallType callType) {
+    static DownloadCall getInstance(Context context, String mCacheUrl, Request request, Subscriber<? super ResultMsg> subscriber, CallType callType) {
         if (instance == null) {
             synchronized (DownloadCall.class) {
                 if (instance == null) {
@@ -75,11 +74,15 @@ class DownloadCall {
         return instance;
     }
 
+    DownloadCall setFileName(String fileName) {
+        this.fileName = fileName;
+        return this;
+    }
+
     /**
      * 请求
      */
     void sendCall() {
-        JLog.v();
         if (callType == CallType.SYNC) {
             sync();
         } else if (callType == CallType.ASYNC) {
@@ -94,19 +97,14 @@ class DownloadCall {
         try {
             Response execute = call.execute();
             if (execute.isSuccessful()) {
-                JLog.v();
                 save(execute.body());
             } else {
-                JLog.v();
-                subscriber.onCompleted();
                 subscriber.onError(new Error("请求失败"));
             }
         } catch (IOException e) {
-            e.printStackTrace();
-            JLog.v(e.getMessage());
-            subscriber.onCompleted();
-            subscriber.onError(new Error(e.getMessage()));
+            subscriber.onError(e);
         }
+        subscriber.onCompleted();
     }
 
     /**
@@ -114,11 +112,13 @@ class DownloadCall {
      */
     private void async() {
         call.enqueue(new Callback() {
+            @Override
             public void onFailure(@NonNull Call call, @NonNull IOException e) {
+                subscriber.onError(e);
                 subscriber.onCompleted();
-                subscriber.onError(new Error(e.getMessage()));
             }
 
+            @Override
             public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
                 save(response.body());
             }
@@ -131,40 +131,39 @@ class DownloadCall {
      * @param body
      */
     private void save(ResponseBody body) {
-        int lastIndexOf = url.lastIndexOf("/");
-        String pathStr = url.subSequence(lastIndexOf + 1, url.length()).toString();
+        if (null == fileName && "".equals(fileName) && fileName.length() <= 0) {
+            int lastIndexOf = url.lastIndexOf("/");
+            String pathStr = url.subSequence(lastIndexOf + 1, url.length()).toString();
+            fileName = FileUtil.getSDPath() + "/" + mContext.getPackageName() + "/" + pathStr;
+        }
+        File file = new File(fileName);
         InputStream is = null;
         FileOutputStream fos = null;
-        String path = FileUtil.getSDPath() + "/" + mContext.getPackageName() + "/" + pathStr;
-        File file = new File(path);
         try {
-//            FileUtil.saveImage(bitmap, path);
             byte[] buf = new byte[2048];
             int len;
-//            long total = body.contentLength();
-//            long current = 0;
             is = body.byteStream();
             fos = new FileOutputStream(file);
             while ((len = is.read(buf)) != -1) {
-//                current += len;
                 fos.write(buf, 0, len);
             }
             fos.flush();
-            subscriber.onNext(path);
+            ResultMsg msg = new ResultMsg();
+            msg.setCode("200");
+            msg.setResult(fileName);
+            subscriber.onNext(msg);
         } catch (Exception e) {
-            e.printStackTrace();
-            subscriber.onError(new Error(e.getMessage()));
-        }finally {
+            subscriber.onError(e);
+        } finally {
             try {
-            if (is!=null){
-                is.close();
-            }
-            if (fos!=null){
-                fos.close();
-            }
-            }catch (Exception e){
-                e.printStackTrace();
-                subscriber.onError(new Error(e.getMessage()));
+                if (is != null) {
+                    is.close();
+                }
+                if (fos != null) {
+                    fos.close();
+                }
+            } catch (Exception e) {
+                subscriber.onError(e);
             }
         }
         subscriber.onCompleted();

+ 39 - 11
okhttp2/src/main/java/com/mylove/okhttp/DownloadObservable.java

@@ -26,6 +26,25 @@ class DownloadObservable {
     private static Context mContext;
     private static RequestType requestType;
     private static CallType callType;
+    private static String fileName;
+
+    private DownloadObservable() {
+    }
+
+    static DownloadObservable getInstance(Context context, String file, RequestType type1, CallType type2) {
+        if (instance == null) {
+            synchronized (DownloadObservable.class) {
+                if (instance == null) {
+                    instance = new DownloadObservable();
+                    mContext = context;
+                    requestType = type1;
+                    callType = type2;
+                    fileName = file;
+                }
+            }
+        }
+        return instance;
+    }
 
     static DownloadObservable getInstance(Context context, RequestType type1, CallType type2) {
         if (instance == null) {
@@ -41,38 +60,47 @@ class DownloadObservable {
         return instance;
     }
 
-    void request(String url, Map<Object, Object> oMap, final onOkHttpListener<String, String> onOkHttpListener) {
+    void request(String url, Map<Object, Object> oMap, final onOkHttpListener onOkHttpListener) {
         getObservable(url, oMap).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new Subscriber<String>() {
+                .subscribe(new Subscriber<ResultMsg>() {
+                    @Override
                     public void onCompleted() {
                         onOkHttpListener.onCompleted();
                     }
 
+                    @Override
                     public void onError(Throwable e) {
-                        onOkHttpListener.onFailure(e.getMessage());
+                        onOkHttpListener.onFailure(e);
                     }
 
-                    public void onNext(String s) {
+                    @Override
+                    public void onNext(ResultMsg s) {
                         onOkHttpListener.onSuccess(s);
                     }
                 });
     }
 
-    private Observable<String> getObservable(final String url, final Map<Object, Object> oMap) {
-        return Observable.create(new Observable.OnSubscribe<String>() {
-            public void call(Subscriber<? super String> subscriber) {
+    private Observable<ResultMsg> getObservable(final String url, final Map<Object, Object> oMap) {
+        return Observable.create(new Observable.OnSubscribe<ResultMsg>() {
+            @Override
+            public void call(Subscriber<? super ResultMsg> subscriber) {
                 send(url, oMap, subscriber);
             }
         });
     }
 
-    private void send(final String url, final Map<Object, Object> oMap, final Subscriber<? super String> subscriber) {
-        if (Internet.ifInternet(mContext)) {
+    private void send(final String url, final Map<Object, Object> oMap, final Subscriber<? super ResultMsg> subscriber) {
+        InternetBean bean = Internet.ifInternet(mContext);
+        if (bean.getStatus()) {
             Request request = getRequest(url, oMap);
-            DownloadCall.getInstance(mContext, url, request, subscriber, callType).sendCall();
+            if (null != fileName && !"".equals(fileName) && fileName.length() > 0) {
+                DownloadCall.getInstance(mContext, url, request, subscriber, callType).setFileName(fileName).sendCall();
+            } else {
+                DownloadCall.getInstance(mContext, url, request, subscriber, callType).sendCall();
+            }
         } else {
+            subscriber.onError(new Exception(bean.getMsg()));
             subscriber.onCompleted();
-            subscriber.onError(new Exception("网络错误"));
         }
     }
 

+ 10 - 2
okhttp2/src/main/java/com/mylove/okhttp/DownloadRequest.java

@@ -34,11 +34,19 @@ public class DownloadRequest {
         return instance;
     }
 
-    public void sync(Map<Object, Object> oMap, onOkHttpListener<String, String> onOkHttpListener) {
+    public void sync(Map<Object, Object> oMap, onOkHttpListener onOkHttpListener) {
         DownloadObservable.getInstance(mContext, requestType, CallType.SYNC).request(url, oMap, onOkHttpListener);
     }
 
-    public void async(Map<Object, Object> oMap, onOkHttpListener<String, String> onOkHttpListener) {
+    public void sync(Map<Object, Object> oMap, String fileName, onOkHttpListener onOkHttpListener) {
+        DownloadObservable.getInstance(mContext, fileName, requestType, CallType.SYNC).request(url, oMap, onOkHttpListener);
+    }
+
+    public void async(Map<Object, Object> oMap, onOkHttpListener onOkHttpListener) {
         DownloadObservable.getInstance(mContext, requestType, CallType.ASYNC).request(url, oMap, onOkHttpListener);
     }
+
+    public void async(Map<Object, Object> oMap, String fileName, onOkHttpListener onOkHttpListener) {
+        DownloadObservable.getInstance(mContext, fileName, requestType, CallType.ASYNC).request(url, oMap, onOkHttpListener);
+    }
 }

+ 2 - 1
okhttp2/src/main/java/com/mylove/okhttp/FileUtil.java

@@ -46,8 +46,9 @@ class FileUtil {
             JLog.v(substring);
             if (substring.equals("png")) {
                 bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
-            } else
+            } else {
                 bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
+            }
             fos.flush();
             fos.close();
         } catch (Exception e) {

+ 2 - 1
okhttp2/src/main/java/com/mylove/okhttp/FormatUtil.java

@@ -339,8 +339,9 @@ import java.util.regex.Pattern;
             BufferedReader bufReader = new BufferedReader(inputReader);
             String line = "";
             StringBuilder Result = new StringBuilder();
-            while ((line = bufReader.readLine()) != null)
+            while ((line = bufReader.readLine()) != null) {
                 Result.append(line);
+            }
             return Result.toString();
         } catch (Exception e) {
             e.printStackTrace();

+ 20 - 21
okhttp2/src/main/java/com/mylove/okhttp/Internet.java

@@ -2,8 +2,6 @@ package com.mylove.okhttp;
 
 import android.content.Context;
 
-import com.mylove.loglib.JLog;
-
 
 /**
  * @author myLove
@@ -16,38 +14,39 @@ class Internet {
     /**
      * 判断网络
      */
-    static boolean ifInternet(Context mContext) {
+    static InternetBean ifInternet(Context mContext) {
+        InternetBean msg = new InternetBean();
         switch (InternetUtil.getConnectedType(mContext)) {
             case -1:
-                JLog.d();
-                ShowToast.getInstance(mContext).show("网络异常");
-                return false;
+                msg.setStatus(false);
+                msg.setMsg("网络异常");
+                return msg;
             case 0:
                 if (!InternetUtil.isNetWorkConnected(mContext)) {
-                    ShowToast.getInstance(mContext).show("网络异常");
-                    JLog.d();
-                    return false;
+                    msg.setStatus(false);
+                    msg.setMsg("网络异常");
+                    return msg;
                 } else {
-                    JLog.d();
-                    return true;
+                    msg.setStatus(true);
+                    return msg;
                 }
             case 1:
                 if (!InternetUtil.isNetWorkConnected(mContext)) {
-                    ShowToast.getInstance(mContext).show("WIFI网络异常");
-                    JLog.d();
-                    return false;
+                    msg.setStatus(false);
+                    msg.setMsg("WIFI网络异常");
+                    return msg;
                 } else {
-                    JLog.d();
-                    return true;
+                    msg.setStatus(true);
+                    return msg;
                 }
             default:
                 if (!InternetUtil.isNetWorkConnected(mContext)) {
-                    ShowToast.getInstance(mContext).show("网络异常");
-                    JLog.d();
-                    return false;
+                    msg.setStatus(false);
+                    msg.setMsg("网络异常");
+                    return msg;
                 } else {
-                    JLog.d();
-                    return true;
+                    msg.setStatus(true);
+                    return msg;
                 }
         }
     }

+ 29 - 0
okhttp2/src/main/java/com/mylove/okhttp/InternetBean.java

@@ -0,0 +1,29 @@
+package com.mylove.okhttp;
+
+/**
+ * @author myLove
+ * @time 2017/12/14 17:24
+ * @e-mail mylove.520.y@gmail.com
+ * @overview
+ */
+
+class InternetBean {
+    private boolean status;
+    private String msg;
+
+    boolean getStatus() {
+        return status;
+    }
+
+     void setStatus(boolean status) {
+        this.status = status;
+    }
+
+     String getMsg() {
+        return msg;
+    }
+
+     void setMsg(String msg) {
+        this.msg = msg;
+    }
+}

+ 20 - 15
okhttp2/src/main/java/com/mylove/okhttp/ObservableRequest.java

@@ -3,8 +3,6 @@ package com.mylove.okhttp;
 import android.annotation.SuppressLint;
 import android.content.Context;
 
-import com.mylove.loglib.JLog;
-
 import java.io.File;
 import java.util.Map;
 
@@ -48,49 +46,57 @@ class ObservableRequest {
         return instance;
     }
 
-    void request(String url, Map<Object, Object> oMap, final onOkHttpListener<String, String> onOkHttpListener) {
+    void request(String url, Map<Object, Object> oMap, final onOkHttpListener onOkHttpListener) {
         getObservable(url, oMap).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new Subscriber<String>() {
+                .subscribe(new Subscriber<ResultMsg>() {
+                    @Override
                     public void onCompleted() {
                         onOkHttpListener.onCompleted();
                     }
 
+                    @Override
                     public void onError(Throwable e) {
-                        onOkHttpListener.onFailure(e.getMessage());
+                        onOkHttpListener.onFailure(e);
                     }
 
-                    public void onNext(String s) {
+                    @Override
+                    public void onNext(ResultMsg s) {
                         onOkHttpListener.onSuccess(s);
                     }
                 });
     }
 
-    private Observable<String> getObservable(final String url, final Map<Object, Object> oMap) {
-        return Observable.create(new Observable.OnSubscribe<String>() {
-            public void call(Subscriber<? super String> subscriber) {
+    private Observable<ResultMsg> getObservable(final String url, final Map<Object, Object> oMap) {
+        return Observable.create(new Observable.OnSubscribe<ResultMsg>() {
+            @Override
+            public void call(Subscriber<? super ResultMsg> subscriber) {
                 send(url, oMap, subscriber);
             }
         });
     }
 
-    private void send(final String url, final Map<Object, Object> oMap, final Subscriber<? super String> subscriber) {
+    private void send(final String url, final Map<Object, Object> oMap, final Subscriber<? super ResultMsg> subscriber) {
         final String mCacheUrl;
         if (FormatUtil.isMapNotEmpty(oMap)) {
             mCacheUrl = url + oMap.toString();
         } else {
             mCacheUrl = url;
         }
-        if (Internet.ifInternet(mContext)) {
+        InternetBean bean = Internet.ifInternet(mContext);
+        if (bean.getStatus()) {
             Request request = getRequest(url, oMap);
             OkCall.getInstance(mContext, mCacheUrl, request, subscriber, callType).sendCall();
         } else {
             String json = CacheUtils.getInstance(mContext).getCacheToLocalJson(mCacheUrl);
             if (FormatUtil.isNotEmpty(json)) {
-                subscriber.onNext(json);
-                subscriber.onCompleted();
+                ResultMsg msg = new ResultMsg();
+                msg.setCode("404");
+                msg.setResult(json);
+                subscriber.onNext(msg);
             } else {
-                subscriber.onError(new Error("网络错误"));
+                subscriber.onError(new Error(bean.getMsg()));
             }
+            subscriber.onCompleted();
         }
     }
 
@@ -210,7 +216,6 @@ class ObservableRequest {
         if (FormatUtil.isMapNotEmpty(oMap)) {
             for (Map.Entry<Object, Object> entry : oMap.entrySet()) {
                 builder.add(entry.getKey().toString(), entry.getValue().toString());
-                JLog.i(entry.getKey() + "\t" + entry.getValue());
             }
         }
         FormBody build = builder.build();

+ 45 - 30
okhttp2/src/main/java/com/mylove/okhttp/OkCall.java

@@ -26,14 +26,14 @@ class OkCall {
     @SuppressLint("StaticFieldLeak")
     private static Context mContext;
     private String mCacheUrl;
-    private Subscriber<? super String> subscriber;
+    private Subscriber<? super ResultMsg> subscriber;
     private Call call;
     @SuppressLint("StaticFieldLeak")
     private static OkCall instance;
     private CallType callType;
     private static OkHttpClient okHttpClient;
 
-    private OkCall(String mCacheUrl, Request request, Subscriber<? super String> subscriber, CallType callType) {
+    private OkCall(String mCacheUrl, Request request, Subscriber<? super ResultMsg> subscriber, CallType callType) {
         this.mCacheUrl = mCacheUrl;
         this.subscriber = subscriber;
         this.call = okHttpClient.newCall(request);
@@ -50,10 +50,10 @@ class OkCall {
      * @param callType   请求类型
      * @return
      */
-    public static OkCall getInstance(Context context, String mCacheUrl, Request request, Subscriber<? super String> subscriber, CallType callType) {
-        if (instance == null) {
-            synchronized (OkCall.class) {
-                if (instance == null) {
+    public static OkCall getInstance(Context context, String mCacheUrl, Request request, Subscriber<? super ResultMsg> subscriber, CallType callType) {
+//        if (instance == null) {
+//            synchronized (OkCall.class) {
+//                if (instance == null) {
                     mContext = context;
                     OkHttpClient httpClient = new OkHttpClient();
                     okHttpClient = httpClient.newBuilder()
@@ -63,9 +63,9 @@ class OkCall {
                             .readTimeout(30, TimeUnit.SECONDS)
                             .build();
                     instance = new OkCall(mCacheUrl, request, subscriber, callType);
-                }
-            }
-        }
+//                }
+//            }
+//        }
         return instance;
     }
 
@@ -81,69 +81,84 @@ class OkCall {
     }
 
     /**
-     * 步请求
+     * 步请求
      */
     private void sync() {
         try {
             Response execute = call.execute();
+            ResultMsg msg = new ResultMsg();
+            int code = execute.code();
+            msg.setCode(code + "");
+            msg.setResult("");
             if (execute.isSuccessful()) {
                 String str = execute.body().string();
-                if (str.contains("<!DOCTYPE html>")) {
-                    subscriber.onError(new Exception("接口错误"));
-                } else {
+                msg.setResult(str);
+                if (!str.contains("<!DOCTYPE html>")) {
                     if (FormatUtil.isNotEmpty(mCacheUrl)) {
                         CacheUtils.getInstance(mContext).setCacheToLocalJson(mCacheUrl, str);
                     }
-                    subscriber.onNext(str);
-                    subscriber.onCompleted();
                 }
+                subscriber.onNext(msg);
+                subscriber.onCompleted();
             } else {
                 String json = CacheUtils.getInstance(mContext).getCacheToLocalJson(mCacheUrl);
                 if (FormatUtil.isNotEmpty(json)) {
-                    subscriber.onNext(json);
-                    subscriber.onCompleted();
+                    msg.setResult(json);
+                    subscriber.onNext(msg);
                 } else {
                     subscriber.onError(new Exception("请求失败"));
                 }
+                subscriber.onCompleted();
             }
         } catch (IOException e) {
-            e.printStackTrace();
             String json = CacheUtils.getInstance(mContext).getCacheToLocalJson(mCacheUrl);
+            ResultMsg msg = new ResultMsg();
+            msg.setCode("404");
             if (FormatUtil.isNotEmpty(json)) {
-                subscriber.onNext(json);
-                subscriber.onCompleted();
+                msg.setResult(json);
+                subscriber.onNext(msg);
             } else {
-                subscriber.onError(new Exception(e.getMessage()));
+                subscriber.onError(e);
             }
+            e.printStackTrace();
+            subscriber.onCompleted();
         }
     }
 
     /**
-     * 步请求
+     * 步请求
      */
     private void async() {
         call.enqueue(new Callback() {
+            @Override
             public void onFailure(@NonNull Call call, @NonNull IOException e) {
                 String json = CacheUtils.getInstance(mContext).getCacheToLocalJson(mCacheUrl);
+                ResultMsg msg = new ResultMsg();
+                msg.setCode("404");
                 if (FormatUtil.isNotEmpty(json)) {
-                    subscriber.onNext(json);
-                    subscriber.onCompleted();
+                    msg.setResult(json);
+                    subscriber.onNext(msg);
                 } else {
-                    subscriber.onError(new Exception(e.getMessage()));
+                    subscriber.onError(e);
                 }
+                e.printStackTrace();
+                subscriber.onCompleted();
             }
 
+            @Override
             public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
                 String str = response.body().string();
-                if (str.contains("<!DOCTYPE html>")) {
-                    subscriber.onError(new Exception("接口错误"));
-                } else {
+                ResultMsg msg = new ResultMsg();
+                int code = response.code();
+                msg.setCode(code + "");
+                msg.setResult(str);
+                if (!str.contains("<!DOCTYPE html>")) {
                     if (FormatUtil.isNotEmpty(mCacheUrl)) {
                         CacheUtils.getInstance(mContext).setCacheToLocalJson(mCacheUrl, str);
                     }
-                    subscriber.onNext(str);
-                    subscriber.onCompleted();
                 }
+                subscriber.onNext(msg);
+                subscriber.onCompleted();
             }
         });
     }

+ 37 - 0
okhttp2/src/main/java/com/mylove/okhttp/ResultMsg.java

@@ -0,0 +1,37 @@
+package com.mylove.okhttp;
+
+/**
+ * @author myLove
+ * @time 2017/12/14 16:50
+ * @e-mail mylove.520.y@gmail.com
+ * @overview
+ */
+
+public class ResultMsg {
+    private String code;
+    private String result;
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getResult() {
+        return result;
+    }
+
+    public void setResult(String result) {
+        this.result = result;
+    }
+
+    @Override
+    public String toString() {
+        return "ResultMsg{" +
+                "code='" + code + '\'' +
+                ", result='" + result + '\'' +
+                '}';
+    }
+}

+ 0 - 39
okhttp2/src/main/java/com/mylove/okhttp/ShowToast.java

@@ -1,39 +0,0 @@
-package com.mylove.okhttp;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.widget.Toast;
-
-/**
- * @author myLove
- * @time 2017/10/31 12:24
- * @e-mail mylove.520.y@gmail.com
- * @overview 吐司工具类
- */
-
-class ShowToast {
-    @SuppressLint("StaticFieldLeak")
-    private static ShowToast instance;
-    private static Context mContext;
-    private static boolean visibleBoo = true;
-
-
-    public static ShowToast getInstance(Context context) {
-        if (mContext != null) {
-            visibleBoo = mContext != context;
-        }
-        mContext = context;
-        if (instance == null) {
-            synchronized (ShowToast.class) {
-                instance = new ShowToast();
-            }
-        }
-        return instance;
-    }
-
-    void show(String msg) {
-        if (visibleBoo) {
-            Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show();
-        }
-    }
-}

+ 0 - 12
okhttp2/src/main/java/com/mylove/okhttp/onOkHttpDownload.java

@@ -1,12 +0,0 @@
-package com.mylove.okhttp;
-
-/**
- * @author myLove
- * @time 2017/11/24 13:57
- * @e-mail mylove.520.y@gmail.com
- * @overview
- */
-
-public interface onOkHttpDownload<K, T> extends onOkHttpListener<K, T> {
-    void onDownloading(int progress);
-}

+ 3 - 3
okhttp2/src/main/java/com/mylove/okhttp/onOkHttpListener.java

@@ -7,10 +7,10 @@ package com.mylove.okhttp;
  * @overview
  */
 
-public interface onOkHttpListener<K, T> {
+public interface onOkHttpListener {
     void onCompleted();
 
-    void onSuccess(K k);
+    void onSuccess(ResultMsg requestMsg);
 
-    void onFailure(T t);
+    void onFailure(Throwable t);
 }