Reverso Context v12.1.0版本的 MD5 值为:5b5a706e52e437022fc445275bd286aa

以下内容为反编译后的 PNApiClient.java 源代码,内容仅作参考


package net.pubnative.lite.sdk.api;

import android.annotation.SuppressLint;
import android.content.Context;
import android.text.TextUtils;
import android.webkit.WebView;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.pubnative.lite.sdk.HyBidError;
import net.pubnative.lite.sdk.HyBidErrorCode;
import net.pubnative.lite.sdk.analytics.Reporting;
import net.pubnative.lite.sdk.api.ApiClient;
import net.pubnative.lite.sdk.models.Ad;
import net.pubnative.lite.sdk.models.AdRequest;
import net.pubnative.lite.sdk.models.AdResponse;
import net.pubnative.lite.sdk.models.PNAdRequest;
import net.pubnative.lite.sdk.network.PNHttpClient;
import net.pubnative.lite.sdk.utils.AdRequestRegistry;
import net.pubnative.lite.sdk.utils.PNApiUrlComposer;
import net.pubnative.lite.sdk.utils.json.JsonOperations;
import org.json.JSONObject;
public class PNApiClient implements ApiClient {
    private static final String TAG = "PNApiClient";
    private String mApiUrl = "https://api.pubnative.net/";
    private final Context mContext;
    private JSONObject mPlacementParams;

    public PNApiClient(Context context) {
        this.mContext = context;
    }

    private String processJS(String str) {
        return str.replace("<script>", "").replace("</script>", "");
    }

    public void registerAdRequest(String str, String str2, long j) {
        long currentTimeMillis = System.currentTimeMillis() - j;
        JsonOperations.putJsonString(this.mPlacementParams, Reporting.Key.AD_REQUEST, str);
        JsonOperations.putJsonString(this.mPlacementParams, Reporting.Key.AD_RESPONSE, str2);
        JsonOperations.putJsonLong(this.mPlacementParams, Reporting.Key.RESPONSE_TIME, currentTimeMillis);
        AdRequestRegistry.getInstance().setLastAdRequest(str, str2, currentTimeMillis);
    }

    private void sendTrackingRequest(String str, String str2, final String str3, final ApiClient.TrackUrlListener trackUrlListener) {
        HashMap hashMap = new HashMap();
        if (!TextUtils.isEmpty(str2)) {
            hashMap.put("User-Agent", str2);
        }
        PNHttpClient.makeRequest(this.mContext, str, hashMap, null, false, true, new PNHttpClient.Listener() {
            @Override
            public void onFailure(Throwable th) {
                ApiClient.TrackUrlListener trackUrlListener2 = trackUrlListener;
                if (trackUrlListener2 != null) {
                    trackUrlListener2.onFailure(new HyBidError(HyBidErrorCode.ERROR_TRACKING_URL, th));
                }
            }

            @Override
            public void onFinally(String str4, int i) {
                trackUrlListener.onFinally(str4, str3, i);
            }

            @Override
            public void onSuccess(String str4, Map<String, List<String>> map) {
                ApiClient.TrackUrlListener trackUrlListener2 = trackUrlListener;
                if (trackUrlListener2 != null) {
                    trackUrlListener2.onSuccess();
                }
            }
        });
    }

    @Override
    public void getAd(final String str, String str2, final ApiClient.AdRequestListener adRequestListener) {
        this.mPlacementParams = new JSONObject();
        if (TextUtils.isEmpty(str)) {
            if (adRequestListener != null) {
                adRequestListener.onFailure(new HyBidError(HyBidErrorCode.INVALID_URL));
                return;
            }
            return;
        }
        final long currentTimeMillis = System.currentTimeMillis();
        HashMap hashMap = new HashMap();
        if (!TextUtils.isEmpty(str2)) {
            hashMap.put("User-Agent", str2);
        }
        PNHttpClient.makeRequest(this.mContext, str, hashMap, null, new PNHttpClient.Listener() {
            @Override
            public void onFailure(Throwable th) {
                PNApiClient.this.registerAdRequest(str, th.getMessage(), currentTimeMillis);
                if (adRequestListener != null) {
                    String unused = PNApiClient.TAG;
                    HyBidErrorCode hyBidErrorCode = HyBidErrorCode.SERVER_ERROR_PREFIX;
                    hyBidErrorCode.getMessage();
                    th.getMessage();
                    adRequestListener.onFailure(new HyBidError(hyBidErrorCode, th));
                }
            }

            @Override
            public final void onFinally(String str3, int i) {
                ez3.a(this, str3, i);
            }

            @Override
            public void onSuccess(String str3, Map<String, List<String>> map) {
                PNApiClient.this.registerAdRequest(str, str3, currentTimeMillis);
                PNApiClient.this.processStream(str3, adRequestListener);
            }
        });
    }

    @Override
    public void getAd(AdRequest adRequest, String str, ApiClient.AdRequestListener adRequestListener) {
        getAd(getAdRequestURL(adRequest), str, adRequestListener);
    }

    public String getAdRequestURL(AdRequest adRequest) {
        return PNApiUrlComposer.buildUrl(this.mApiUrl, (PNAdRequest) adRequest);
    }

    @Override
    public String getApiUrl() {
        return this.mApiUrl;
    }

    @Override
    public Context getContext() {
        return this.mContext;
    }

    @Override
    public JSONObject getPlacementParams() {
        return this.mPlacementParams;
    }

    @Override
    public void processStream(String str, ApiClient.AdRequestListener adRequestListener) {
        AdResponse adResponse = null;
        try {
            AdResponse adResponse2 = new AdResponse(new JSONObject(str));
            e = null;
            adResponse = adResponse2;
        } catch (Error e) {
            e = new HyBidError(HyBidErrorCode.PARSER_ERROR, e);
        } catch (Exception e2) {
            e = e2;
        }
        processStream(adResponse, e, adRequestListener);
    }

    @Override
    public void processStream(String str, AdRequest adRequest, Integer num, Integer num2, ApiClient.AdRequestListener adRequestListener) {
        processStream(str, adRequestListener);
    }

    @Override
    public void processStream(AdResponse adResponse, Exception exc, ApiClient.AdRequestListener adRequestListener) {
        if (exc != null) {
            adRequestListener.onFailure(new HyBidError(HyBidErrorCode.PARSER_ERROR, exc));
        } else if (adResponse == null) {
            adRequestListener.onFailure(new HyBidError(HyBidErrorCode.PARSER_ERROR));
        } else if (!AdResponse.Status.OK.equals(adResponse.status)) {
            HyBidErrorCode hyBidErrorCode = HyBidErrorCode.SERVER_ERROR_PREFIX;
            hyBidErrorCode.getMessage();
            adRequestListener.onFailure(new HyBidError(hyBidErrorCode, new Exception(adResponse.error_message)));
        } else {
            List<Ad> list = adResponse.ads;
            if (list == null || list.isEmpty()) {
                adRequestListener.onFailure(new HyBidError(HyBidErrorCode.NO_FILL));
            } else {
                adRequestListener.onSuccess(adResponse.ads.get(0));
            }
        }
    }

    @Override
    public void setApiUrl(String str) {
        if (TextUtils.isEmpty(str)) {
            return;
        }
        this.mApiUrl = str;
    }

    @Override
    public void setCustomUrl(String str) {
    }

    @Override
    @SuppressLint({"SetJavaScriptEnabled", "ObsoleteSdkInt"})
    public void trackJS(String str, ApiClient.TrackJSListener trackJSListener) {
        if (TextUtils.isEmpty(str)) {
            if (trackJSListener != null) {
                trackJSListener.onFailure(new HyBidError(HyBidErrorCode.ERROR_TRACKING_JS, "Empty JS tracking beacon"));
                return;
            }
            return;
        }
        try {
            WebView webView = new WebView(this.mContext);
            webView.getSettings().setJavaScriptEnabled(true);
            webView.evaluateJavascript(processJS(str), null);
            if (trackJSListener != null) {
                trackJSListener.onSuccess();
            }
        } catch (RuntimeException unused) {
            if (trackJSListener != null) {
                trackJSListener.onFailure(new HyBidError(HyBidErrorCode.ERROR_TRACKING_JS, "Error tracking JS beacon. No webview to evaluate JS."));
            }
        }
    }

    @Override
    public void trackUrl(String str, String str2, String str3, ApiClient.TrackUrlListener trackUrlListener) {
        sendTrackingRequest(str, str2, str3, trackUrlListener);
    }
}