当我编译并运行下面的代码时,我得到了未知的主机异常抛出。
import java.net.*;
import java.io.*;
public class URLReader {
public static void main(String[] args) throws Exception {
String result="";
// Create a URL for the desired page
URL url = new URL("https://www.google.co.in/?gfe_rd=cr&ei=URzCVNmFKIiBoAPlpoD4CA&gws_rd=ssl#q=jbutton");
// Read all the text returned by the server
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {
// str is one line of text; readLine() strips the newline character(s)
result += str;
}
in.close();
System.out.println(result);
}
}
如何为上述代码(Https和HTTP)设置代理?我在Eclipse Kepler中运行上面的代码。
答案 0 :(得分:4)
您可以在启动JVM时设置所需的属性。在eclipse Run-> run configuration-> Argument Tab
中,设置VM参数
-Dhttp.proxyHost=Your/proxy/server.com -Dhttp.proxyPort=80
您可以使用网络设置定义的默认PROXY。
System.setProperty("java.net.useSystemProxies", "true");
或在打开连接之前使用您的代理:
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("Proxy/address", 8080/*port*/));
URL url = new URL("https://www.google.co.in/?gfe_rd=cr&ei=URzCVNmFKIiBoAPlpoD4CA&gws_rd=ssl#q=jbutton");
HttpURLConnection uc = (HttpURLConnection)url.openConnection(proxy);
uc.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
答案 1 :(得分:2)
如果您支持代理,您将面临此问题。每当您使用浏览器时,您是否设置了任何代理?如果是,您还需要配置此程序。
此外,您可以尝试在eclipse运行配置中设置代理:
-DproxySet=true -DproxyHost=<proxy host> -DproxyPort=<port> JavApp