예제 #1
0
 public void init() {
   try {
     url = new URL(urlStr);
     // 创建一个代理服务器对象
     proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyAddress, proxyPort));
     // 使用指定的代理服务器打开连接
     conn = url.openConnection(proxy);
     // 设置超时时长。
     conn.setConnectTimeout(5000);
     scan = new Scanner(conn.getInputStream());
     // 初始化输出流
     ps = new PrintStream("Index.htm");
     while (scan.hasNextLine()) {
       String line = scan.nextLine();
       // 在控制台输出网页资源内容
       System.out.println(line);
       // 将网页资源内容输出到指定输出流
       ps.println(line);
     }
   } catch (MalformedURLException ex) {
     System.out.println(urlStr + "不是有效的网站地址!");
   } catch (IOException ex) {
     ex.printStackTrace();
   }
   // 关闭资源
   finally {
     if (ps != null) {
       ps.close();
     }
   }
 }
  /**
   * Determine if a host is reachable by attempting to resolve the host name, and then attempting to
   * open a connection.
   *
   * @param hostName Name of the host to connect to.
   * @return {@code true} if a the host is reachable, {@code false} if the host name cannot be
   *     resolved, or if opening a connection to the host fails.
   */
  protected static boolean isHostReachable(String hostName) {
    try {
      // Assume host is unreachable if we can't get its dns entry without getting an exception
      //noinspection ResultOfMethodCallIgnored
      InetAddress.getByName(hostName);
    } catch (UnknownHostException e) {
      String message = Logging.getMessage("NetworkStatus.UnreachableTestHost", hostName);
      Logging.verbose(message);
      return false;
    } catch (Exception e) {
      String message = Logging.getMessage("NetworkStatus.ExceptionTestingHost", hostName);
      Logging.verbose(message);
      return false;
    }

    // Was able to get internet address, but host still might not be reachable because the address
    // might have been
    // cached earlier when it was available. So need to try something else.

    URLConnection connection = null;
    try {
      URL url = new URL("http://" + hostName);
      Proxy proxy = WWIO.configureProxy();
      if (proxy != null) connection = url.openConnection(proxy);
      else connection = url.openConnection();

      connection.setConnectTimeout(2000);
      connection.setReadTimeout(2000);
      String ct = connection.getContentType();
      if (ct != null) return true;
    } catch (IOException e) {
      String message = Logging.getMessage("NetworkStatus.ExceptionTestingHost", hostName);
      Logging.info(message);
    } finally {
      if (connection instanceof HttpURLConnection) ((HttpURLConnection) connection).disconnect();
    }

    return false;
  }