Tìm thiết lập proxy trong Java



Miêu tả vấn đề

Cách tìm thiết lập proxy của một System trong Java?

Giải pháp

Ví dụ sau minh họa tìm thiết lập proxy và tạo một kết nối proxy trên một hệ thống bởi sử dụng phương thức put của lớp systemSetting và phương thức getResponse của lớp HttpURLConnection trong Java.

import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Properties;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.ProxySelector;
import java.net.URI;public class Main{
   public static void main(String s[]) 
   throws Exception{
      try {
         Properties systemSettings = 
         System.getProperties();
         systemSettings.put("proxySet", "true");
         systemSettings.put("http.proxyHost", 
         "proxy.mycompany1.local");
         systemSettings.put("http.proxyPort", "80");
         URL u = new URL("http://www.google.com");
         HttpURLConnection con = (HttpURLConnection)
         u.openConnection();
         System.out.println(con.getResponseCode() + 
         " : " + con.getResponseMessage());
         System.out.println(con.getResponseCode() == 
         HttpURLConnection.HTTP_OK);
      }
      catch (Exception e) {
         e.printStackTrace();
         System.out.println(false);
      }
      System.setProperty("java.net.useSystemProxies", 
      "true");
      Proxy proxy = (Proxy) ProxySelector.getDefault().
      select(new URI("http://www.yahoo.com/")).iterator().
      next();;
      System.out.println("proxy hostname : " + proxy.type());
      InetSocketAddress addr = (InetSocketAddress)
      proxy.address();
      if (addr == null) {
         System.out.println("No Proxy");
      }
      else {
         System.out.println("proxy hostname : " 
         + addr.getHostName());
         System.out.println("proxy port : "
         + addr.getPort());
      }
   }
}

Kết quả

Code trên sẽ cho kết quả sau:

200 : OK
true
proxy hostname : HTTP
proxy hostname : proxy.mycompany1.local
proxy port : 80

lap_trinh_mang_trong_java.jsp