HttpProxy 1

package jetsennet.ia.business;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.URIException;
import org.apache.commons.httpclient.methods.DeleteMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.PutMethod;
import org.apache.commons.httpclient.params.HttpClientParams;
import org.apache.commons.httpclient.params.HttpMethodParams;

/************************************************************************
日  期:	   2013-10-14
作  者:		周波
版  本:     smg10
描  述:	    智能分析http访问代理
历  史:      
************************************************************************/
public class IAHttpProxy
{
	private final static String  USERNAME = "jetsenadmin";//TRS用户名
	private final static String  PASSWORD = "jetsen@admin";//TRS密码
	private final static int  timeOut = 30000; //毫秒
	private final static HttpClient httpClient = new HttpClient();
	
	/**
	 * 发送GET请求
	 * @param url
	 * @return
	 */
	public static String doGetMethod(String url, List<NameValuePair> pList)throws Exception
	{
		String result = "";
		
		GetMethod method = new GetMethod(url);
		method.addRequestHeader("Content-Type", "text/html");//设定请求
		HttpMethodParams httpParams = new HttpClientParams(); 
		httpParams.setSoTimeout(timeOut);		
		method.setParams(httpParams);
		List<NameValuePair> paramsList = new ArrayList<NameValuePair>();
		paramsList.add(new NameValuePair("username",USERNAME));
		paramsList.add(new NameValuePair("password",PASSWORD));
		if(pList != null)
		{
			paramsList.addAll(pList);
		}
		NameValuePair[] params = new NameValuePair[paramsList.size()];
		paramsList.toArray(params);	
						
		try
		{			
			method.setQueryString(params);
			int status = httpClient.executeMethod(method);
			result = method.getResponseBodyAsString();		
		}
		catch (URIException e) {
			// TODO: handle exception
			throw new Exception("[执行HTTP Get请求时,发生异常,可能超时。]");
		}
		catch (IOException e)
		{
			throw new Exception("[执行HTTP Get请求时,发生异常,可能超时。]");
		}
		finally
		{
			method.releaseConnection();			
		}
		
		method.releaseConnection();
		return result;
	}
	
	/**
	 * 发送POST请求
	 * @param url
	 * @return
	 */
	public static String doPostMethod(String url, List<NameValuePair> pList)throws Exception
	{
		String result = "";		
		PostMethod method = new PostMethod(url);		
		
		method.addRequestHeader("Content-Type", "text/html");//设定请求
		HttpMethodParams httpParams = new HttpClientParams(); 
		httpParams.setSoTimeout(timeOut);		
		method.setParams(httpParams);
		List<NameValuePair> paramsList = new ArrayList<NameValuePair>();
		paramsList.add(new NameValuePair("username",USERNAME));
		paramsList.add(new NameValuePair("password",PASSWORD));
		if(pList != null)
		{
			paramsList.addAll(pList);
		}
		NameValuePair[] params = new NameValuePair[paramsList.size()];
		paramsList.toArray(params);		
		
		
		try
		{
			method.setQueryString(params);
			
			int status = httpClient.executeMethod(method);	
			System.out.println("请求结果状态:"+status);
			result = method.getResponseBodyAsString();
		}
		catch (URIException e) {
			// TODO: handle exception
			throw new Exception("[执行HTTP POST请求时,发生异常,可能超时。]");
		}
		catch (IOException e)
		{
			throw new Exception("[执行HTTP POST请求时,发生异常,可能超时。]");
		}
		finally
		{
			method.releaseConnection();			
		}
		
		
		return result;
	}
	
	/**
	 * 发送PUT请求
	 * @param url
	 * @return
	 */
	public static String doPutMethod(String url, List<NameValuePair> pList)throws Exception
	{
		String result = "";		
		PutMethod method = new PutMethod(url);		
	
		method.addRequestHeader("Content-Type", "text/html");//设定请求
		HttpMethodParams httpParams = new HttpClientParams(); 
		httpParams.setSoTimeout(timeOut);		
		method.setParams(httpParams);
		
		List<NameValuePair> paramsList = new ArrayList<NameValuePair>();
		paramsList.add(new NameValuePair("username",USERNAME));
		paramsList.add(new NameValuePair("password",PASSWORD));
		if(pList != null)
		{
			paramsList.addAll(pList);
		}
		NameValuePair[] params = new NameValuePair[paramsList.size()];
		paramsList.toArray(params);		
				
		try
		{
			method.setQueryString(params);			
			int status = httpClient.executeMethod(method);				
			result = method.getResponseBodyAsString();
			
		}
		catch (URIException e) {
			// TODO: handle exception
			throw new Exception("[执行HTTP Put请求时,发生异常,可能超时。]");
		}
		catch (IOException e)
		{
			throw new Exception("[执行HTTP Put请求时,发生异常,可能超时。]");
		}
		finally
		{
			method.releaseConnection();			
		}
				
		return result;
	}
	
	/**
	 * 发送Delete请求
	 * @param url
	 * @return
	 */
	public static String doDeleteMethod(String url, List<NameValuePair> pList)throws Exception
	{
		String result = "";
		
		DeleteMethod method = new DeleteMethod(url);		
	
		method.addRequestHeader("Content-Type", "text/html");//设定请求
		HttpMethodParams httpParams = new HttpClientParams(); 
		httpParams.setSoTimeout(timeOut);		
		method.setParams(httpParams);
		
		List<NameValuePair> paramsList = new ArrayList<NameValuePair>();
		paramsList.add(new NameValuePair("username",USERNAME));
		paramsList.add(new NameValuePair("password",PASSWORD));
		if(pList != null)
		{
			paramsList.addAll(pList);
		}
		NameValuePair[] params = new NameValuePair[paramsList.size()];
		paramsList.toArray(params);		
		
		
		try
		{
			method.setQueryString(params);
			
			int status = httpClient.executeMethod(method);			
			result = method.getResponseBodyAsString();
			
		}
		catch (URIException e) {
			// TODO: handle exception
			throw new Exception("[执行HTTP delete请求时,发生异常,可能超时。]");
		}
		catch (IOException e)
		{
			throw new Exception("[执行HTTP delete请求时,发生异常,可能超时。]");
		}
		finally
		{
			method.releaseConnection();			
		}		
		
		return result;
	}

}

  

posted @ 2016-10-19 10:59  许仙来了  阅读(246)  评论(0编辑  收藏  举报