Obtain the source code of the webpage, and access the external network through the proxy of the intranet

public class WebTools {  
    public static void main(String[] args) {  
        String proxy = "proxy1.bj.petrochina";  
        int port = 8080;  
        String username = "name";  
        String password = "pwd";  
        initProxy(proxy,port,username,password);  
        String url="http://www.google.com";  
        /*System.out.println("content= "+WebTools.getHTML("http://www.baidu.com", "GB2312"));
        System.out.println("网页源码:"+WebTools.getHTML("http://localhost:9001/rdfcc", "UTF-8"));*/  
        String[] res=WebTools.getSourceCode(url, "UTF-8");  
        if(res[0].equals("0")){  
            System.out.println("Geting Source Code Failed With:"+res[1]);  
        }else{  
            System.out.println("The Source Code Of "+url+" Is :\r\n"+res[1]);  
        }  
    }  
      
    /**
     * Initialize the network proxy, if the internal network needs a proxy to access the external network, then you need to call this method
     * @param host proxy name
     * @param port port number
     * @param username username (if any)
     * @param password password (if any)
     */  
    public static void initProxy(String host, int port, final String username,  
            final String password) {  
        Authenticator.setDefault(new Authenticator() {  
            protected PasswordAuthentication getPasswordAuthentication() {  
                return new PasswordAuthentication(username,  
                        new String(password).toCharArray());  
            }  
        });  
        System.setProperty("proxyType", "4");  
        System.setProperty("proxyPort", Integer.toString(port));  
        System.setProperty("proxyHost", host);  
        System.setProperty("proxySet", "true");  
    }  
      
    /**
     * Get webpage source code
     * @param pageURL address
     * @param encoding web page encoding
     * @return String array of length 2, the first element indicates whether the acquisition is successful, and the second element indicates whether the return information is successful or not
     */  
    public static String [] getSourceCode (String pageURL, String encoding) {  
        StringBuilder pageHTML = new StringBuilder();  
        try {  
            URL url = new URL (pageURL);  
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();  
            connection.setRequestProperty("User-Agent", "MSIE 7.0");  
            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), encoding));  
            String line = null;   
            while ((line = br.readLine()) != null) {  
                pageHTML.append(line);  
                pageHTML.append("\r\n");  
            }  
            connection.disconnect();  
        } catch (Exception e) {  
            return new String[]{"0",e.getMessage()};  
        }  
        return new String[]{"1",pageHTML.toString()};  
    }  
}  

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326460309&siteId=291194637