导航菜单

页面标题

页面副标题

EFFICIENT POS v1.5.7 - ApiClient.java 源代码

正在查看: EFFICIENT POS v1.5.7 应用的 ApiClient.java JAVA 源代码文件

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


package dev.gtr.pos.api;

import android.content.Context;
import android.util.Log;
import com.google.gson.GsonBuilder;
import java.io.IOException;
import java.util.Iterator;
import java.util.concurrent.TimeUnit;
import okhttp3.HttpUrl;
import okhttp3.Interceptor;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.ResponseBody;
import org.json.JSONException;
import org.json.JSONObject;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class ApiClient {
    static String BaseUrl = "https://www.pqstec.com/invoiceapps/";
    static ApiClient mInstance;
    static volatile Retrofit retrofit;

    private ApiClient(Context context) {
        new Interceptor() {
            @Override
            public final Response intercept(Interceptor.Chain chain) {
                return ApiClient.lambda$new$0(chain);
            }
        };
        retrofit = new Retrofit.Builder().baseUrl(BaseUrl).client(new OkHttpClient.Builder().readTimeout(60L, TimeUnit.SECONDS).connectTimeout(60L, TimeUnit.SECONDS).writeTimeout(30L, TimeUnit.SECONDS).addInterceptor(new NullParameterRemovalInterceptor()).build()).addConverterFactory(GsonConverterFactory.create(new GsonBuilder().setLenient().create())).build();
    }

    static Response lambda$new$0(Interceptor.Chain chain) throws IOException {
        Response proceed = chain.proceed(chain.request());
        ResponseBody body = proceed.body();
        String string = body.string();
        Log.e("resT", string);
        return proceed.newBuilder().body(ResponseBody.create(body.get$contentType(), string)).build();
    }

    public static synchronized ApiClient getInstance(Context context) {
        ApiClient apiClient;
        synchronized (ApiClient.class) {
            if (mInstance == null) {
                synchronized (ApiClient.class) {
                    if (mInstance == null) {
                        mInstance = new ApiClient(context);
                    }
                }
            }
            apiClient = mInstance;
        }
        return apiClient;
    }

    public static String getBaseUrl() {
        return BaseUrl;
    }

    public ApiInterface getApi() {
        return (ApiInterface) retrofit.create(ApiInterface.class);
    }

    static class NullParameterRemovalInterceptor implements Interceptor {
        NullParameterRemovalInterceptor() {
        }

        @Override
        public Response intercept(Interceptor.Chain chain) throws IOException {
            MediaType contentType;
            Request request = chain.request();
            Request.Builder newBuilder = request.newBuilder();
            if (request.method().equals("GET")) {
                HttpUrl.Builder newBuilder2 = request.url().newBuilder();
                for (String str : request.url().queryParameterNames()) {
                    String queryParameter = request.url().queryParameter(str);
                    Log.e("hi1", queryParameter);
                    if (queryParameter != null && queryParameter.length() == 0) {
                        Log.e("hi1", str);
                    } else {
                        newBuilder2.addQueryParameter(str, queryParameter);
                    }
                }
                newBuilder.url(newBuilder2.build());
            } else {
                RequestBody body = request.body();
                if (body != null && (contentType = body.getContentType()) != null && contentType.type().equals("application") && contentType.subtype().equals("json")) {
                    try {
                        JSONObject jSONObject = new JSONObject(body.toString());
                        Iterator<String> keys = jSONObject.keys();
                        while (keys.hasNext()) {
                            if (jSONObject.isNull(keys.next())) {
                                keys.remove();
                            }
                        }
                        body = RequestBody.create(contentType, jSONObject.toString());
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
                newBuilder.method(request.method(), body);
            }
            return chain.proceed(newBuilder.build());
        }
    }
}