В моей java-программе я использую URLConnection для получения URL-адреса. Под windows работает нормально, но под linux не работает. И я хочу знать, почему.
коды:
Properties prop = System.getProperties();
prop.setProperty("http.proxyHost", "127.0.0.1");
prop.setProperty("http.proxyPort", "8080");
System.setProperty("sun.net.client.defaultConnectTimeout", "20000");
System.setProperty("sun.net.client.defaultReadTimeout", "20000");
URLConnection conn = new URL(url).openConnection();
InputStream is = conn.getInputStream();
byte [] buff = new byte[is.available()];//1024];
int read = is.read(buff);
System.out.println("buff:" + buff.length);
String result = "";
if(read > 0) {
result = new String(buff, 0, read);
read = is.read(buff);
System.out.println("result:" + result);
}
Оказывается, что байт пуст и читается = 0.
Но под окнами все работает нормально.
Я также попытался установить поле User-Agent, которое ничем не отличается.
HttpURLConnection также пробовал, та же проблема.
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8080));
HttpURLConnection conn = (HttpURLConnection)(new URL(url).openConnection(proxy));
Этот способ тоже пробовал. Сбой либо.
Все эти способы отлично работают с Windows.
URL можно нормально открыть с помощью firefox на этом компьютере, используя тот же прокси, кстати.