导航菜单

页面标题

页面副标题

六分钟步行测试管理软件 v1.1.0.2112120029 - RetrofitRequest.java 源代码

正在查看: 六分钟步行测试管理软件 v1.1.0.2112120029 应用的 RetrofitRequest.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package cn.neoprint.padmonitor.network.uploadsixminreport;

import android.content.Context;
import android.util.Log;
import android.widget.Toast;
import cn.neoprint.padmonitor.R;
import cn.neoprint.padmonitor.data.entity.UploadCloud;
import com.google.gson.Gson;
import com.sayeasytech.base.utils.NetworkUtil;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Type;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.X509TrustManager;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class RetrofitRequest {
    private static int TIME_OUT = 30;
    public static String URL_BASE;
    public static OkHttpClient client;
    private static Retrofit retrofit;
    private static final SSLSocketFactory sslSocketFactory;
    private static X509TrustManager trustAllCert = new X509TrustManager() {
        @Override
        public void checkClientTrusted(X509Certificate[] x509CertificateArr, String str) throws CertificateException {
        }

        @Override
        public void checkServerTrusted(X509Certificate[] x509CertificateArr, String str) throws CertificateException {
        }

        @Override
        public X509Certificate[] getAcceptedIssuers() {
            return new X509Certificate[0];
        }
    };

    public interface DownloadHandler {
        void onBody(ResponseBody responseBody);

        void onError();
    }

    static {
        SSLSocketFactoryCompat sSLSocketFactoryCompat = new SSLSocketFactoryCompat(trustAllCert);
        sslSocketFactory = sSLSocketFactoryCompat;
        URL_BASE = "http://192.168.2.180:8080/";
        client = new OkHttpClient.Builder().sslSocketFactory(sSLSocketFactoryCompat, trustAllCert).connectTimeout(TIME_OUT, TimeUnit.SECONDS).readTimeout(TIME_OUT, TimeUnit.SECONDS).writeTimeout(TIME_OUT, TimeUnit.SECONDS).build();
    }

    public static void init(boolean z) {
        if (z) {
            URL_BASE = "http://192.168.2.180:8081/";
        }
        retrofit = new Retrofit.Builder().baseUrl(URL_BASE).addConverterFactory(GsonConverterFactory.create()).client(client).build();
    }

    public static <T extends BaseResult> void sendPostRequestPSK(String str, final Type type, final ResultHandler<T> resultHandler, String str2) {
        if (!NetworkUtil.isNetworkConnected(resultHandler.context)) {
            resultHandler.onAfterFailure();
            return;
        }
        Retrofit retrofit2 = retrofit;
        if (retrofit2 == null) {
            Log.e("Log", "RetrofitRequest.init()-请初始化后再使用");
            return;
        }
        PostRequest postRequest = (PostRequest) retrofit2.create(PostRequest.class);
        System.out.println("---上传数据:" + str);
        postRequest.postMapNew(URL_BASE + "fileResources/uploadData", (UploadCloud) new Gson().fromJson(str, UploadCloud.class)).enqueue(new Callback<ResponseBody>() {
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                ResultHandler.this.onBeforeResult();
                try {
                    System.out.println("---x-" + response.toString());
                    ResponseBody responseBody = (ResponseBody) response.body();
                    if (responseBody == null) {
                        ResultHandler.this.onServerError();
                        ResultHandler.this.onAfterFailure();
                    } else {
                        String string = responseBody.string();
                        System.out.println("----返回数据:" + string);
                        ResultHandler.this.onResult((BaseResult) new Gson().fromJson(string, type));
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                    ResultHandler.this.onFailure(e);
                    ResultHandler.this.onAfterFailure();
                }
            }

            public void onFailure(Call<ResponseBody> call, Throwable th) {
                th.printStackTrace();
                System.out.println("----onFailure" + call.toString());
                ResultHandler.this.onFailure(th);
                ResultHandler.this.onAfterFailure();
            }
        });
    }

    public static <T extends BaseResult> void sendPostRequest(String str, UploadCloud uploadCloud, final Type type, final ResultHandler<T> resultHandler, String str2) {
        if (!NetworkUtil.isNetworkConnected(resultHandler.context)) {
            resultHandler.onAfterFailure();
            return;
        }
        PostRequest postRequest = (PostRequest) retrofit.create(PostRequest.class);
        uploadCloud.setApiKey(str2);
        uploadCloud.setFileType("pdf");
        uploadCloud.setFileResources("六分钟步行监测记录报告");
        System.out.println("---上传数据:" + new Gson().toJson(uploadCloud));
        postRequest.postMapNew(str, uploadCloud).enqueue(new Callback<ResponseBody>() {
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                ResultHandler.this.onBeforeResult();
                try {
                    System.out.println("---x-" + response.toString());
                    ResponseBody responseBody = (ResponseBody) response.body();
                    if (responseBody == null) {
                        ResultHandler.this.onServerError();
                        ResultHandler.this.onAfterFailure();
                    } else {
                        String string = responseBody.string();
                        System.out.println("----返回数据:" + string);
                        ResultHandler.this.onResult((BaseResult) new Gson().fromJson(string, type));
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                    ResultHandler.this.onFailure(e);
                    ResultHandler.this.onAfterFailure();
                }
            }

            public void onFailure(Call<ResponseBody> call, Throwable th) {
                th.printStackTrace();
                System.out.println("----onFailure" + call.toString());
                ResultHandler.this.onFailure(th);
                ResultHandler.this.onAfterFailure();
            }
        });
    }

    private static Map<String, RequestBody> generateRequestBody(Map<String, String> map, File file) {
        HashMap hashMap = new HashMap();
        Iterator<String> it = map.keySet().iterator();
        while (true) {
            String str = "";
            if (it.hasNext()) {
                String next = it.next();
                MediaType parse = MediaType.parse("text/plain;charset=UTF-8");
                if (map.get(next) != null) {
                    str = map.get(next);
                }
                hashMap.put(next, RequestBody.create(parse, str));
            } else {
                hashMap.put("file\"; filename=\"" + file.getName() + "", RequestBody.create(MediaType.parse("multipart/form-data;charset=UTF-8"), file));
                return hashMap;
            }
        }
    }

    private static Map<String, RequestBody> addMultiPart(Map<String, RequestBody> map, String str, Object obj) {
        if (obj instanceof String) {
            map.put(str, RequestBody.create(MediaType.parse("text/plain;charset=UTF-8"), (String) obj));
        } else if (obj instanceof File) {
            File file = (File) obj;
            map.put(str + "\"; filename=\"" + file.getName() + "", RequestBody.create(MediaType.parse("multipart/form-data;charset=UTF-8"), file));
        }
        return map;
    }

    public static abstract class ResultHandler<T> {
        Context context;

        public abstract void onAfterFailure();

        public abstract void onBeforeResult();

        public abstract void onResult(T t);

        public ResultHandler(Context context) {
            this.context = context;
        }

        public boolean isNetDisconnected() {
            return NetworkUtil.isNetworkConnected(this.context);
        }

        public void onServerError() {
            Toast.makeText(this.context, R.string.net_server_error, 0).show();
        }

        public void onFailure(Throwable th) {
            if ((th instanceof SocketTimeoutException) || (th instanceof ConnectException)) {
                if (NetworkUtil.isNetworkConnected(this.context)) {
                    Toast.makeText(this.context, R.string.net_server_connected_error, 0).show();
                    return;
                } else {
                    Toast.makeText(this.context, R.string.net_not_connected, 0).show();
                    return;
                }
            }
            if (th instanceof Exception) {
                th.printStackTrace();
                Toast.makeText(this.context, R.string.net_unknown_error, 0).show();
            }
        }
    }
}