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;
}
}