QQ浏览器 v12.2.3.7053版本的 MD5 值为:8285ab3059e5c8b521a264dfbc5c3685

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


package com.tencent.mtt.base.task;

import android.webkit.ValueCallback;
import com.tencent.basesupport.FLogger;
import com.tencent.common.http.IPostDataBuf;
import com.tencent.common.http.MttRequestBase;
import com.tencent.common.http.MttResponse;
import com.tencent.common.http.QueenConfig;
import com.tencent.common.http.RequesterFactory;
import com.tencent.common.threadpool.BrowserExecutorSupplier;
import com.tencent.mtt.AppInfoHolder;
import com.tencent.mtt.base.net.frame.RequestManager;
import com.tencent.mtt.network.QBUrl;
import com.tencent.tbs.common.internal.service.StatServerHolder;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Random;

public class NetworkTask extends Task {

    boolean f33210a;

    int f33211b;

    int f33212c;

    NetworkTaskCallback f33213d;
    boolean e;
    private final String f;
    private boolean g;
    private long h;
    private long i;
    private long j;
    private Random k;
    private boolean l;

    public interface NetworkTaskCallback {
        void onTaskFailed(MttRequestBase mttRequestBase, int i);

        void onTaskSuccess(MttRequestBase mttRequestBase, MttResponse mttResponse);
    }

    public NetworkTask(String str) {
        this(str, (byte) 0, (NetworkTaskCallback) null);
    }

    public NetworkTask(String str, byte b2) {
        this(str, b2, (NetworkTaskCallback) null);
    }

    public NetworkTask(String str, byte b2, NetworkTaskCallback networkTaskCallback) {
        boolean z = false;
        this.g = false;
        this.h = -1L;
        this.i = -1L;
        this.j = -1L;
        this.k = new Random();
        this.f33210a = false;
        this.f33211b = 1;
        this.f33212c = 0;
        this.f33213d = null;
        this.e = false;
        if (QBUrl.j().booleanValue() && !a()) {
            z = true;
        }
        this.l = z;
        this.f = str;
        this.mMttRequest = RequesterFactory.getMttRequestBase();
        this.mMttRequest.setUrl(str);
        this.mMttRequest.setMethod(b2);
        this.f33213d = networkTaskCallback;
        a(this.mMttRequest);
    }

    public NetworkTask(String str, NetworkTaskCallback networkTaskCallback) {
        this(str, (byte) 0, networkTaskCallback);
    }

    public NetworkTask(String str, byte[] bArr, NetworkTaskCallback networkTaskCallback) {
        boolean z = false;
        this.g = false;
        this.h = -1L;
        this.i = -1L;
        this.j = -1L;
        this.k = new Random();
        this.f33210a = false;
        this.f33211b = 1;
        this.f33212c = 0;
        this.f33213d = null;
        this.e = false;
        if (QBUrl.j().booleanValue() && !a()) {
            z = true;
        }
        this.l = z;
        this.f = str;
        this.mMttRequest = RequesterFactory.getMttRequestBase();
        this.mMttRequest.setUrl(str);
        this.mMttRequest.setMethod((byte) 1);
        this.mMttRequest.setPostData(bArr);
        this.f33213d = networkTaskCallback;
        a(this.mMttRequest);
    }

    private int a(Throwable th) {
        if (th instanceof UnknownHostException) {
            FLogger.e("NetworkTask", "UnknownHostException [" + this.mMttRequest.getUrl() + "] e=" + th.getMessage());
            return 3;
        }
        if (th instanceof SocketTimeoutException) {
            FLogger.e("NetworkTask", "SocketTimeoutException [" + this.mMttRequest.getUrl() + "] e=" + th.getMessage());
            return 5;
        }
        if (th instanceof SocketException) {
            FLogger.e("NetworkTask", "SocketException [" + this.mMttRequest.getUrl() + "] e=" + th.getMessage());
            return 4;
        }
        if (th instanceof FileNotFoundException) {
            FLogger.e("NetworkTask", "SocketException [" + this.mMttRequest.getUrl() + "] e=" + th.getMessage());
            return 8;
        }
        if (th instanceof IOException) {
            FLogger.e("NetworkTask", "SocketException [" + this.mMttRequest.getUrl() + "] e=" + th.getMessage());
            return 2;
        }
        if (th instanceof OutOfMemoryError) {
            FLogger.e("NetworkTask", "SocketException [" + this.mMttRequest.getUrl() + "] e=" + th.getMessage());
            return 9;
        }
        FLogger.e("NetworkTask", "SocketException [" + this.mMttRequest.getUrl() + "] e=" + th.getMessage());
        return -1;
    }

    private void a(final String str) {
        if (this.k.nextInt(100) < 5) {
            String str2 = this.f;
            if (str2 == null || !str2.startsWith("https://otheve.beacon.qq.com")) {
                String str3 = this.f;
                if (str3 == null || !str3.startsWith("https://aegis.qq.com/")) {
                    final long currentTimeMillis = System.currentTimeMillis() - this.i;
                    BrowserExecutorSupplier.postForIoTasks(new BrowserExecutorSupplier.BackgroundRunable() {
                        @Override
                        public void doRun() {
                            NetworkTask.this.a(str, currentTimeMillis);
                        }
                    });
                }
            }
        }
    }

    public void a(String str, long j) {
        try {
            HashMap hashMap = new HashMap();
            hashMap.put("url", "" + this.f);
            hashMap.put("success", str);
            hashMap.put("threadWaitTime", "" + (this.j - this.i));
            hashMap.put("requestTime", "" + j);
            hashMap.put("errorCode", "" + this.mErrorCode);
            StringBuilder sb = new StringBuilder();
            sb.append("");
            sb.append(getMttRequest() != null ? getMttRequest().getHeader("Content-Length") : "");
            hashMap.put("requestContentLength", sb.toString());
            StringBuilder sb2 = new StringBuilder();
            sb2.append("");
            sb2.append(getMttResponse() != null ? getMttResponse().getHeaderField("Content-Length") : "");
            hashMap.put("responseContentLength", sb2.toString());
            hashMap.put("isBlackExecuteTask", "" + this.g);
            hashMap.put("guid", AppInfoHolder.getAppInfoByID(AppInfoHolder.AppInfoID.APP_INFO_GUID));
            hashMap.put("qua2", AppInfoHolder.getAppInfoByID(AppInfoHolder.AppInfoID.APP_INFO_QUA2_3));
            hashMap.put("messageType", "NetworkTask");
            StatServerHolder.statWithBeacon("MTT_NETWORKTASK_QUALITY_STAT_BEACON", hashMap);
        } catch (Exception unused) {
        }
    }

    public static boolean a() {
        if (QueenConfig.getInfoProvider().isTunnelProxyEnable()) {
            return QueenConfig.getInfoProvider().isQueenUser();
        }
        return false;
    }

    public void b(MttResponse mttResponse) {
        if (this.mCanceled) {
            setMttResponse(null);
            this.mErrorCode = 100;
            a((byte) 2);
            mttResponse = null;
        }
        if (isRetring()) {
            int i = this.f33212c + 1;
            this.f33212c = i;
            if (i <= this.f33211b) {
                retry();
                return;
            }
        }
        if (isPending()) {
            return;
        }
        a(mttResponse);
    }

    private void e() {
        MttRequestBase mttRequestBase;
        String str;
        if (!this.l) {
            mttRequestBase = this.mMttRequest;
            str = "";
        } else if (this.g) {
            mttRequestBase = this.mMttRequest;
            str = "BlackListExecutor";
        } else {
            mttRequestBase = this.mMttRequest;
            str = "NetworkExecutor";
        }
        mttRequestBase.setUrlExtra(str);
    }

    private void f() {
        if (this.mCanceled || this.f33212c > this.f33211b) {
            b((MttResponse) null);
        } else {
            c();
        }
    }

    private void g() {
        MttResponse mttResponse;
        if (this.mCanceled || this.f33212c > this.f33211b) {
            mttResponse = null;
        } else {
            mttResponse = b();
            setMttResponse(mttResponse);
            a(a(this.mMttRequest, mttResponse));
        }
        b(mttResponse);
    }

    private ValueCallback<MttResponse> h() {
        return new ValueCallback<MttResponse>() {
            @Override
            public void onReceiveValue(MttResponse mttResponse) {
                Integer statusCode = mttResponse == null ? MttResponse.UNKNOWN_STATUS : mttResponse.getStatusCode();
                if (NetworkTask.this.mErrorCode == 0 && statusCode == null) {
                    NetworkTask.this.mErrorCode = -1;
                }
                FLogger.d("NetworkTask", "errorNo : " + NetworkTask.this.mErrorCode);
                FLogger.d("NetworkTask", "statusCode : " + statusCode);
                NetworkTask.this.setMttResponse(mttResponse);
                NetworkTask networkTask = NetworkTask.this;
                NetworkTask.this.a(networkTask.a(networkTask.mMttRequest, mttResponse));
                NetworkTask.this.b(mttResponse);
            }
        };
    }

    byte a(MttRequestBase mttRequestBase, MttResponse mttResponse) {
        return (mttResponse == null || mttResponse.getStatusCode().intValue() == -1) ? (byte) 3 : (byte) 2;
    }

    public NetworkTask a(int i) {
        this.mMttRequest.setConnectTimeout(i);
        return this;
    }

    public NetworkTask a(NetworkTaskCallback networkTaskCallback) {
        this.f33213d = networkTaskCallback;
        return this;
    }

    public NetworkTask a(String str, String str2) {
        this.mMttRequest.addHeader(str, str2);
        return this;
    }

    void a(byte b2) {
        this.mRunningState = b2;
    }

    public void a(IPostDataBuf iPostDataBuf) {
        this.mMttRequest.setPostData(iPostDataBuf);
    }

    protected void a(MttRequestBase mttRequestBase) {
    }

    protected void a(MttRequestBase mttRequestBase, int i) {
        StringBuilder sb = new StringBuilder();
        sb.append("NetworkTask onTaskFailed url=");
        sb.append(mttRequestBase.getUrl());
        sb.append(" ip=");
        sb.append(mttRequestBase.getIp() != null ? mttRequestBase.getIp() : "");
        sb.append(" errorCode=");
        sb.append(i);
        FLogger.e("NetworkTask", sb.toString());
        NetworkTaskCallback networkTaskCallback = this.f33213d;
        if (networkTaskCallback != null) {
            networkTaskCallback.onTaskFailed(mttRequestBase, i);
        }
        a("fail");
    }

    protected void a(MttResponse mttResponse) {
        FLogger.d("NetworkTask", "onResponse: " + mttResponse);
        if (mttResponse != null) {
            b(this.mMttRequest, mttResponse);
        } else {
            a(this.mMttRequest, this.mErrorCode);
        }
        closeQuietly();
    }

    public void a(boolean z) {
        this.mMttRequest.setInstanceFollowRedirects(z);
    }

    public void a(byte[] bArr) {
        this.mMttRequest.setPostData(bArr);
    }

    @Override
    @Deprecated
    public void addObserver(TaskObserver taskObserver) {
    }

    protected MttResponse b() {
        FLogger.d("NetworkTask", "performRequest: [" + this.mMttRequest.getUrl() + "]");
        MttResponse mttResponse = null;
        int i = 0;
        try {
            if (this.mRequester != null) {
                this.mRequester.close();
            }
            this.mRequester = RequesterFactory.getRequester(0);
            mttResponse = this.mRequester.execute(this.mMttRequest);
        } catch (Throwable th) {
            i = a(th);
            if (i != 0 && this.mRequester != null && this.mRequester != null) {
                this.mRequester.abort();
            }
        }
        Integer statusCode = mttResponse == null ? MttResponse.UNKNOWN_STATUS : mttResponse.getStatusCode();
        if (i == 0 && statusCode == null) {
            i = -1;
        }
        this.mErrorCode = i;
        FLogger.d("NetworkTask", "errorNo : " + i);
        FLogger.d("NetworkTask", "statusCode : " + statusCode);
        return mttResponse;
    }

    public NetworkTask b(int i) {
        this.mMttRequest.setReadTimeout(i);
        return this;
    }

    public NetworkTask b(String str, String str2) {
        this.mMttRequest.setRequestProperty(str, str2);
        return this;
    }

    protected void b(MttRequestBase mttRequestBase, MttResponse mttResponse) {
        NetworkTaskCallback networkTaskCallback = this.f33213d;
        if (networkTaskCallback != null) {
            networkTaskCallback.onTaskSuccess(mttRequestBase, mttResponse);
        }
        a("success");
    }

    public void b(boolean z) {
        this.g = z;
    }

    protected void c() {
        FLogger.d("NetworkTask", "performRequest: [" + this.mMttRequest.getUrl() + "]");
        int i = 0;
        try {
            if (this.mRequester != null) {
                this.mRequester.close();
            }
            this.mRequester = RequesterFactory.getRequester(0);
            this.mRequester.executeAsync(this.mMttRequest, h());
        } catch (Throwable th) {
            i = a(th);
            if (i != 0 && this.mRequester != null && this.mRequester != null) {
                this.mRequester.abort();
            }
        }
        this.mErrorCode = i;
    }

    @Override
    public void cancel() {
        super.cancel();
        FLogger.d("NetworkTask", "cancel [" + this.mMttRequest.getUrl() + "]");
        this.mCanceled = true;
        a((MttResponse) null);
    }

    @Override
    public void closeQuietly() {
        FLogger.d("NetworkTask", "closeQuietly [" + this.mMttRequest.getUrl() + "]");
        super.closeQuietly();
    }

    public void d() {
        if (this.f33210a) {
            return;
        }
        this.f33210a = true;
        this.i = System.currentTimeMillis();
        if (!this.g) {
            this.h = System.currentTimeMillis();
        }
        if (this.l) {
            doRun();
        } else if (this.g) {
            RequestManager.e(this);
        } else {
            RequestManager.a(this);
        }
    }

    @Override
    public void doRun() {
        e();
        FLogger.d("NetworkTask", "doRun [" + this.mMttRequest.getUrl() + "]");
        FLogger.d("NetworkTask", "isRetring: " + isRetring() + ", retry times: " + this.f33212c);
        long currentTimeMillis = System.currentTimeMillis();
        this.j = System.currentTimeMillis();
        if (!this.g) {
            long j = this.h;
            if (j != -1 && currentTimeMillis - j > 500) {
                FLogger.e("NetworkTask", "url=" + this.mMttRequest.getUrl() + " thread wait time=" + (currentTimeMillis - this.h));
            }
        }
        a((byte) 1);
        if (this.l) {
            f();
        } else {
            g();
        }
    }

    @Override
    @Deprecated
    public void fireObserverEvent(int i) {
        if (5 == i) {
            this.mErrorCode = -1;
            a((MttResponse) null);
        }
    }

    @Override
    public String getTaskUrl() {
        return this.f;
    }

    @Override
    public void resetStatus() {
        super.resetStatus();
    }

    @Override
    public void setTaskType(byte b2) {
        this.mMttRequest.setRequestType(b2);
    }
}