- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
130 lines
4.4 KiB
Java
130 lines
4.4 KiB
Java
package com.amazonaws.util;
|
|
|
|
import androidx.webkit.ProxyConfig;
|
|
import com.amazonaws.Request;
|
|
import com.amazonaws.http.HttpMethodName;
|
|
import com.ironsource.v8;
|
|
import java.io.UnsupportedEncodingException;
|
|
import java.net.URI;
|
|
import java.net.URLEncoder;
|
|
import java.util.Map;
|
|
import java.util.regex.Matcher;
|
|
import java.util.regex.Pattern;
|
|
|
|
/* loaded from: classes.dex */
|
|
public abstract class HttpUtils {
|
|
public static final Pattern DECODED_CHARACTERS_PATTERN;
|
|
public static final Pattern ENCODED_CHARACTERS_PATTERN = Pattern.compile(Pattern.quote("+") + "|" + Pattern.quote(ProxyConfig.MATCH_ALL_SCHEMES) + "|" + Pattern.quote("%7E") + "|" + Pattern.quote("%2F"));
|
|
|
|
static {
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.append(Pattern.quote("%2A"));
|
|
sb.append("|");
|
|
sb.append(Pattern.quote("%2B"));
|
|
sb.append("|");
|
|
DECODED_CHARACTERS_PATTERN = Pattern.compile(sb.toString());
|
|
}
|
|
|
|
public static String urlEncode(String str, boolean z) {
|
|
if (str == null) {
|
|
return "";
|
|
}
|
|
try {
|
|
String encode = URLEncoder.encode(str, "UTF-8");
|
|
Matcher matcher = ENCODED_CHARACTERS_PATTERN.matcher(encode);
|
|
StringBuffer stringBuffer = new StringBuffer(encode.length());
|
|
while (matcher.find()) {
|
|
String group = matcher.group(0);
|
|
if ("+".equals(group)) {
|
|
group = "%20";
|
|
} else if (ProxyConfig.MATCH_ALL_SCHEMES.equals(group)) {
|
|
group = "%2A";
|
|
} else if ("%7E".equals(group)) {
|
|
group = "~";
|
|
} else if (z && "%2F".equals(group)) {
|
|
group = "/";
|
|
}
|
|
matcher.appendReplacement(stringBuffer, group);
|
|
}
|
|
matcher.appendTail(stringBuffer);
|
|
return stringBuffer.toString();
|
|
} catch (UnsupportedEncodingException e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
}
|
|
|
|
public static boolean isUsingNonDefaultPort(URI uri) {
|
|
String lowerCase = StringUtils.lowerCase(uri.getScheme());
|
|
int port = uri.getPort();
|
|
if (port <= 0) {
|
|
return false;
|
|
}
|
|
if ("http".equals(lowerCase) && port == 80) {
|
|
return false;
|
|
}
|
|
return ("https".equals(lowerCase) && port == 443) ? false : true;
|
|
}
|
|
|
|
public static boolean usePayloadForQueryParameters(Request request) {
|
|
return HttpMethodName.POST.equals(request.getHttpMethod()) && (request.getContent() == null);
|
|
}
|
|
|
|
public static String encodeParameters(Request request) {
|
|
if (request.getParameters().isEmpty()) {
|
|
return null;
|
|
}
|
|
StringBuilder sb = new StringBuilder();
|
|
try {
|
|
boolean z = true;
|
|
for (Map.Entry entry : request.getParameters().entrySet()) {
|
|
String encode = URLEncoder.encode((String) entry.getKey(), "UTF-8");
|
|
String str = (String) entry.getValue();
|
|
String encode2 = str == null ? "" : URLEncoder.encode(str, "UTF-8");
|
|
if (z) {
|
|
z = false;
|
|
} else {
|
|
sb.append(v8.i.c);
|
|
}
|
|
sb.append(encode);
|
|
sb.append(v8.i.b);
|
|
sb.append(encode2);
|
|
}
|
|
return sb.toString();
|
|
} catch (UnsupportedEncodingException e) {
|
|
throw new IllegalArgumentException(e);
|
|
}
|
|
}
|
|
|
|
public static String appendUri(String str, String str2) {
|
|
return appendUri(str, str2, false);
|
|
}
|
|
|
|
public static String appendUri(String str, String str2, boolean z) {
|
|
if (str2 != null && str2.length() > 0) {
|
|
if (str2.startsWith("/")) {
|
|
if (str.endsWith("/")) {
|
|
str = str.substring(0, str.length() - 1);
|
|
}
|
|
} else if (!str.endsWith("/")) {
|
|
str = str + "/";
|
|
}
|
|
String urlEncode = urlEncode(str2, true);
|
|
if (z) {
|
|
urlEncode = urlEncode.replace("//", "/%2F");
|
|
}
|
|
return str + urlEncode;
|
|
}
|
|
if (str.endsWith("/")) {
|
|
return str;
|
|
}
|
|
return str + "/";
|
|
}
|
|
|
|
public static String appendUriEncoded(String str, String str2) {
|
|
if (str2 == null) {
|
|
return str;
|
|
}
|
|
return str + str2;
|
|
}
|
|
}
|