📄 urlutils.java
字号:
{
if (connect_timeout != -1L)
Java15Utils.setConnectTimeout(connection, (int)connect_timeout);
if (read_timeout != -1L)
Java15Utils.setReadTimeout(connection, (int)read_timeout);
connection.connect();
} else
{
AESemaphore sem = new AESemaphore("URLUtils:cwt");
Throwable res[] = {
null
};
if (connect_pool.isFull())
{
Debug.out("Connect pool is full, forcing timeout");
throw new IOException("Timeout");
}
connect_pool.run(new AERunnable(connection, res, sem) {
final URLConnection val$connection;
final Throwable val$res[];
final AESemaphore val$sem;
public void runSupport()
{
connection.connect();
sem.release();
break MISSING_BLOCK_LABEL_45;
Throwable e;
e;
res[0] = e;
sem.release();
break MISSING_BLOCK_LABEL_45;
Exception exception;
exception;
sem.release();
throw exception;
}
{
connection = urlconnection;
res = athrowable;
sem = aesemaphore;
super();
}
});
boolean ok = sem.reserve(connect_timeout);
if (ok)
{
Throwable error = res[0];
if (error != null)
if (error instanceof IOException)
throw (IOException)error;
else
throw new IOException(Debug.getNestedExceptionMessage(error));
} else
{
throw new IOException("Timeout");
}
}
}
public static void setBrowserHeaders(ResourceDownloader rd, String referer)
{
setBrowserHeaders(rd, null, referer);
}
public static void setBrowserHeaders(ResourceDownloader rd, String encoded_headers, String referer)
{
String headers_to_use = getBrowserHeadersToUse(encoded_headers);
try
{
String header_string = new String(Base64.decode(headers_to_use), "UTF-8");
String headers[] = header_string.split("\n");
for (int i = 0; i < headers.length; i++)
{
String header = headers[i];
int pos = header.indexOf(':');
if (pos == -1)
continue;
String lhs = header.substring(0, pos).trim();
String rhs = header.substring(pos + 1).trim();
if (!lhs.equalsIgnoreCase("Host") && !lhs.equalsIgnoreCase("Referer"))
rd.setProperty((new StringBuilder()).append("URL_").append(lhs).toString(), rhs);
}
if (referer != null && referer.length() > 0)
rd.setProperty("URL_Referer", referer);
}
catch (Throwable e) { }
}
public static void setBrowserHeaders(ResourceUploader ru, String encoded_headers, String referer)
{
String headers_to_use = getBrowserHeadersToUse(encoded_headers);
try
{
String header_string = new String(Base64.decode(headers_to_use), "UTF-8");
String headers[] = header_string.split("\n");
for (int i = 0; i < headers.length; i++)
{
String header = headers[i];
int pos = header.indexOf(':');
if (pos == -1)
continue;
String lhs = header.substring(0, pos).trim();
String rhs = header.substring(pos + 1).trim();
if (!lhs.equalsIgnoreCase("Host") && !lhs.equalsIgnoreCase("Referer"))
ru.setProperty((new StringBuilder()).append("URL_").append(lhs).toString(), rhs);
}
if (referer != null && referer.length() > 0)
ru.setProperty("URL_Referer", referer);
}
catch (Throwable e) { }
}
public static void setBrowserHeaders(URLConnection connection, String referer)
{
setBrowserHeaders(connection, null, referer);
}
public static void setBrowserHeaders(URLConnection connection, String encoded_headers, String referer)
{
String headers_to_use = getBrowserHeadersToUse(encoded_headers);
try
{
String header_string = new String(Base64.decode(headers_to_use), "UTF-8");
String headers[] = header_string.split("\n");
for (int i = 0; i < headers.length; i++)
{
String header = headers[i];
int pos = header.indexOf(':');
if (pos == -1)
continue;
String lhs = header.substring(0, pos).trim();
String rhs = header.substring(pos + 1).trim();
if (!lhs.equalsIgnoreCase("Host") && !lhs.equalsIgnoreCase("Referer"))
connection.setRequestProperty(lhs, rhs);
}
if (referer != null && referer.length() > 0)
connection.setRequestProperty("Referer", referer);
}
catch (Throwable e) { }
}
public static Map getBrowserHeaders(String referer)
{
String headers_to_use = getBrowserHeadersToUse(null);
Map result = new HashMap();
try
{
String header_string = new String(Base64.decode(headers_to_use), "UTF-8");
String headers[] = header_string.split("\n");
for (int i = 0; i < headers.length; i++)
{
String header = headers[i];
int pos = header.indexOf(':');
if (pos == -1)
continue;
String lhs = header.substring(0, pos).trim();
String rhs = header.substring(pos + 1).trim();
if (!lhs.equalsIgnoreCase("Host") && !lhs.equalsIgnoreCase("Referer"))
result.put(lhs, rhs);
}
if (referer != null && referer.length() > 0)
result.put("Referer", referer);
}
catch (Throwable e) { }
return result;
}
private static String getBrowserHeadersToUse(String encoded_headers)
{
String headers_to_use = encoded_headers;
synchronized (org/gudy/azureus2/core3/util/UrlUtils)
{
if (headers_to_use == null)
{
if (last_headers != null)
headers_to_use = last_headers;
else
headers_to_use = "SG9zdDogbG9jYWxob3N0OjQ1MTAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZW4tVVM7IHJ2OjEuOC4xLjE0KSBHZWNrby8yMDA4MDQwNCBGaXJlZm94LzIuMC4wLjE0CkFjY2VwdDogdGV4dC94bWwsYXBwbGljYXRpb24veG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCx0ZXh0L2h0bWw7cT0wLjksdGV4dC9wbGFpbjtxPTAuOCxpbWFnZS9wbmcsKi8qO3E9MC41CkFjY2VwdC1MYW5ndWFnZTogZW4tdXMsZW47cT0wLjUKQWNjZXB0LUVuY29kaW5nOiBnemlwLGRlZmxhdGUKQWNjZXB0LUNoYXJzZXQ6IElTTy04ODU5LTEsdXRmLTg7cT0wLjcsKjtxPTAuNwpLZWVwLUFsaXZlOiAzMDAKQ29ubmVjdGlvbjoga2VlcC1hbGl2ZQ==";
} else
{
if (last_headers == null || !headers_to_use.equals(last_headers))
COConfigurationManager.setParameter("metasearch.web.last.headers", headers_to_use);
last_headers = headers_to_use;
}
}
return headers_to_use;
}
public static boolean queryHasParameter(String query_string, String param_name, boolean case_sensitive)
{
if (!case_sensitive)
{
query_string = query_string.toLowerCase();
param_name = param_name.toLowerCase();
}
if (query_string.charAt(0) == '?')
query_string = (new StringBuilder()).append('&').append(query_string.substring(1)).toString();
else
if (query_string.charAt(0) != '&')
query_string = (new StringBuilder()).append('&').append(query_string).toString();
return query_string.indexOf((new StringBuilder()).append("&").append(param_name).append("=").toString()) != -1;
}
public static boolean containsPasskey(URL url)
{
String url_str = url.toExternalForm();
return url_str.matches(".*[0-9a-z]{20,40}.*");
}
public static URL setPort(URL u, int port)
{
StringBuffer result;
result = new StringBuffer();
result.append(u.getProtocol());
result.append(":");
String authority = u.getAuthority();
if (authority != null && authority.length() > 0)
{
result.append("//");
int pos = authority.lastIndexOf(':');
if (pos == -1)
result.append((new StringBuilder()).append(authority).append(":").append(port).toString());
else
result.append((new StringBuilder()).append(authority.substring(0, pos + 1)).append(port).toString());
}
if (u.getPath() != null)
result.append(u.getPath());
if (u.getQuery() != null)
{
result.append('?');
result.append(u.getQuery());
}
if (u.getRef() != null)
{
result.append("#");
result.append(u.getRef());
}
return new URL(result.toString());
Throwable e;
e;
Debug.out(e);
return u;
}
static
{
connect_pool = new ThreadPool("URLConnectWithTimeout", 8, true);
connect_pool.setWarnWhenFull();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -