和通讯录 v3.9.6版本的 MD5 值为:669178e2ee1b2311daf378bd20c6bbe1
以下内容为反编译后的 h.java 源代码,内容仅作参考
package com.chinamobile.icloud.im.sync.c;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import com.google.android.mms.pdu.EncodedStringValue;
import com.huawei.tep.component.net.http.HttpConstant;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.security.MessageDigest;
import java.security.SecureRandom;
import java.util.HashMap;
import java.util.Random;
import java.util.zip.GZIPInputStream;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
public final class h {
public static String f3999a = "https://a.cytxl.com.cn/";
public static final String f4000b = f3999a + "mcloud/jsonrpc_api.php";
public static final String c = f3999a + "pim/jsonrpc_api.php";
private static final String e = f3999a + "mcloud/jsonrpc_api.php";
private static String f = e;
public static final String d = c;
private static final String g = f3999a + "c/jsonrpc_api.php?%s";
public static String a() {
return f;
}
public static String a(int i) {
StringBuffer stringBuffer = new StringBuffer();
Random random = new Random();
for (int i2 = 0; i2 < i; i2++) {
stringBuffer.append(random.nextInt());
}
return stringBuffer.toString();
}
public static String a(Context context, String str, e eVar, com.chinamobile.icloud.im.sync.c.a.a.a aVar) {
byte[] b2 = b(context, str, eVar, aVar, aVar instanceof com.chinamobile.icloud.im.sync.b.i ? ((com.chinamobile.icloud.im.sync.b.i) aVar).a() : false);
if (b2 != null) {
return new String(b2, EncodedStringValue.StringEncoding.UTF_8);
}
return null;
}
public static String a(Context context, String str, e eVar, com.chinamobile.icloud.im.sync.c.a.a.a aVar, boolean z) {
try {
byte[] b2 = b(context, str, eVar, aVar, z);
if (b2 != null) {
return new String(b2, EncodedStringValue.StringEncoding.UTF_8);
}
} catch (Exception e2) {
e2.printStackTrace();
}
return null;
}
public static String a(Context context, String str, String str2) {
try {
byte[] b2 = b(context, str, new e(), new i(str2), false);
if (b2 != null) {
return new String(b2, EncodedStringValue.StringEncoding.UTF_8);
}
} catch (Exception e2) {
e2.printStackTrace();
}
return null;
}
public static URLConnection a(Context context, String str) {
try {
return new URL(str).openConnection();
} catch (Exception e2) {
e2.printStackTrace();
return null;
}
}
public static void a(InputStream inputStream, OutputStream outputStream) {
byte[] bArr = new byte[4096];
while (true) {
int read = inputStream.read(bArr);
if (read == -1) {
return;
} else {
outputStream.write(bArr, 0, read);
}
}
}
public static byte[] a(Context context, String str, e eVar, com.chinamobile.icloud.im.sync.c.a.a.a aVar, boolean z, HashMap<String, String> hashMap) {
HttpURLConnection httpURLConnection;
boolean z2;
byte[] byteArray;
if (str.startsWith("https")) {
HttpsURLConnection httpsURLConnection = (HttpsURLConnection) new URL(str).openConnection();
SSLContext sSLContext = SSLContext.getInstance("TLS");
sSLContext.init(null, new TrustManager[]{new m()}, new SecureRandom());
httpsURLConnection.setSSLSocketFactory(sSLContext.getSocketFactory());
httpsURLConnection.setHostnameVerifier(new l());
httpURLConnection = httpsURLConnection;
} else {
httpURLConnection = (HttpURLConnection) a(context, str);
}
j jVar = new j(httpURLConnection);
try {
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
httpURLConnection.setRequestMethod(HttpConstant.Method.POST);
httpURLConnection.setRequestProperty(HttpConstant.Header.CONNECTION, "Keep-Alive");
httpURLConnection.setRequestProperty("Charset", "GB2312");
httpURLConnection.setRequestProperty("content-type", "text/html");
if (hashMap != null) {
for (String str2 : hashMap.keySet()) {
httpURLConnection.setRequestProperty(str2, hashMap.get(str2));
}
}
httpURLConnection.setConnectTimeout(60000);
httpURLConnection.setReadTimeout(60000);
if (z) {
httpURLConnection.setRequestProperty("Compress", "gzip");
}
httpURLConnection.connect();
eVar.a(jVar);
OutputStream outputStream = httpURLConnection.getOutputStream();
if (aVar != null) {
aVar.a(outputStream);
if (aVar instanceof com.chinamobile.icloud.im.sync.b.i) {
((com.chinamobile.icloud.im.sync.b.i) aVar).b();
}
}
InputStream inputStream = httpURLConnection.getInputStream();
httpURLConnection.getResponseCode();
String headerField = httpURLConnection.getHeaderField("Compresss");
if (headerField == null || !headerField.equals("gzip")) {
z2 = false;
} else {
Log.e("ContactManager", "Compress:" + headerField);
z2 = true;
}
if (!z2 || inputStream == null) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(byteArrayOutputStream, 4096);
a(inputStream, bufferedOutputStream);
bufferedOutputStream.flush();
byteArray = byteArrayOutputStream.toByteArray();
bufferedOutputStream.close();
} else {
GZIPInputStream gZIPInputStream = new GZIPInputStream(new BufferedInputStream(inputStream));
ByteArrayOutputStream byteArrayOutputStream2 = new ByteArrayOutputStream();
BufferedOutputStream bufferedOutputStream2 = new BufferedOutputStream(byteArrayOutputStream2, 4096);
a(gZIPInputStream, bufferedOutputStream2);
bufferedOutputStream2.flush();
byteArray = byteArrayOutputStream2.toByteArray();
gZIPInputStream.close();
}
outputStream.close();
return byteArray;
} finally {
if (jVar != null) {
eVar.b(jVar);
}
if (httpURLConnection != null) {
httpURLConnection.disconnect();
}
}
}
public static byte[] a(String str) {
try {
HttpURLConnection httpURLConnection = (HttpURLConnection) new URL(str).openConnection();
httpURLConnection.connect();
try {
Bitmap decodeStream = BitmapFactory.decodeStream(httpURLConnection.getInputStream(), null, new BitmapFactory.Options());
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(decodeStream.getWidth() * decodeStream.getHeight() * 4);
decodeStream.compress(Bitmap.CompressFormat.JPEG, 95, byteArrayOutputStream);
byteArrayOutputStream.flush();
byteArrayOutputStream.close();
decodeStream.recycle();
return byteArrayOutputStream.toByteArray();
} finally {
httpURLConnection.disconnect();
}
} catch (Exception e2) {
com.chinamobile.icloud.im.sync.b.c.c().a(e2);
e2.printStackTrace();
return null;
}
}
public static String b() {
return c;
}
public static String b(String str) {
try {
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
char[] charArray = str.toCharArray();
byte[] bArr = new byte[charArray.length];
for (int i = 0; i < charArray.length; i++) {
bArr[i] = (byte) charArray[i];
}
byte[] digest = messageDigest.digest(bArr);
StringBuffer stringBuffer = new StringBuffer();
for (byte b2 : digest) {
int i2 = b2 & 255;
if (i2 < 16) {
stringBuffer.append("0");
}
stringBuffer.append(Integer.toHexString(i2));
}
return stringBuffer.toString();
} catch (Exception e2) {
e2.printStackTrace();
return "";
}
}
public static byte[] b(Context context, String str, e eVar, com.chinamobile.icloud.im.sync.c.a.a.a aVar, boolean z) {
return a(context, str, eVar, aVar, z, null);
}
public static String c() {
return "https://a.cytxl.com.cn/mcloud/jsonrpc_api.php";
}
public static String c(String str) {
try {
MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
messageDigest.update(str.getBytes());
byte[] digest = messageDigest.digest();
StringBuffer stringBuffer = new StringBuffer();
for (byte b2 : digest) {
int i = b2 & 255;
if (i < 16) {
stringBuffer.append("0");
}
stringBuffer.append(Integer.toHexString(i));
}
return stringBuffer.toString();
} catch (Exception e2) {
e2.printStackTrace();
return "";
}
}
}