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);
}
}