Java/Network Protocol/Proxy

Материал из Java эксперт
Перейти к: навигация, поиск

Detect Proxy Settings for Internet Connection

   <source lang="java">

import java.net.InetSocketAddress; import java.net.Proxy; import java.net.ProxySelector; import java.net.URI; import java.util.Iterator; import java.util.List; public class Main {

 public static void main(String[] args) throws Exception {
   System.setProperty("java.net.useSystemProxies", "true");
   List l = ProxySelector.getDefault().select(new URI("http://www.yahoo.ru/"));
   for (Iterator iter = l.iterator(); iter.hasNext();) {
     Proxy proxy = (Proxy) iter.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());
     }
   }
 }

}

 </source>
   
  
 
  



Identify ourself to a proxy

   <source lang="java">

import java.net.HttpURLConnection; import java.net.URL; import java.util.Properties; 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.mycompany.local");
     systemSettings.put("http.proxyPort", "80");
     URL u = new URL("http://www.java.ru");
     HttpURLConnection con = (HttpURLConnection) u.openConnection();
     sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
     String encodedUserPwd = encoder.encode("domain\\username:password".getBytes());
     con.setRequestProperty("Proxy-Authorization", "Basic " + encodedUserPwd);
     con.setRequestMethod("HEAD");
     System.out.println(con.getResponseCode() + " : " + con.getResponseMessage());
     System.out.println(con.getResponseCode() == HttpURLConnection.HTTP_OK);
   } catch (Exception e) {
     e.printStackTrace();
     System.out.println(false);
   }
 }

}

 </source>
   
  
 
  



URL connection and proxy

   <source lang="java">

import java.net.HttpURLConnection; import java.net.URL; import java.util.Properties; 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.mycompany.local");
     systemSettings.put("http.proxyPort", "80");
     URL u = new URL("http://www.java.ru");
     HttpURLConnection con = (HttpURLConnection) u.openConnection();
     sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
     String encodedUserPwd = encoder.encode("domain\\username:password".getBytes());
     con.setRequestProperty("Proxy-Authorization", "Basic " + encodedUserPwd);
     con.setRequestMethod("HEAD");
     System.out.println(con.getResponseCode() + " : " + con.getResponseMessage());
     System.out.println(con.getResponseCode() == HttpURLConnection.HTTP_OK);
   } catch (Exception e) {
     e.printStackTrace();
     System.out.println(false);
   }
 }

}

 </source>