Eclipse中的未知主机异常

时间:2015-01-23 10:10:52

标签: java eclipse http https proxy

当我编译并运行下面的代码时,我得到了未知的主机异常抛出。

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中运行上面的代码。

2 个答案:

答案 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