WebTools

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Authenticator;
import java.net.HttpURLConnection;
import java.net.PasswordAuthentication;
import java.net.URL;

import org.apache.http.HttpHost;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.impl.client.DefaultHttpClient;
/**
 * 
 * @author Lovingshu
 *
 */
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.baidu.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, "gb2312");
		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]);
		}
	}*/
	
	/**
	 * 初始化网络代理,如果内网需要代理才能访问外网的话,那么就需要调用该方法
	 * @param host 代理名称
	 * @param port 端口号
	 * @param username 用户名(如果有的话)
	 * @param password 密码(如果有的话)
	 */
	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");
	}
	
	/**
	 * 获取网页源码
	 * @param pageURL 地址
	 * @param encoding 网页编码
	 * @return 长度为2的字符串数组,第一个元素表示获取是否成功,第二个元素表示成功与否返回的信息
	 */
	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()};
	}
	
	/**
	 * 获取DefaultHttpClient,并设置好代理
	 * @return
	 */
	public static DefaultHttpClient getDefaultClient(){
		DefaultHttpClient client= new DefaultHttpClient();
        HttpHost proxy = new HttpHost("proxy1.bj.petrochina", 8080); 
        client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
        return client;
	}
}

你可能感兴趣的:(exception,String,null,url,import,encoding)