packagecom.founder.ec.common.utils;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.URL;importjava.net.URLConnection;importjava.util.Date;importjava.util.Map;importjava.util.Set;importorg.apache.commons.httpclient.HttpClient;importorg.apache.commons.httpclient.HttpException;importorg.apache.commons.httpclient.NameValuePair;importorg.apache.commons.httpclient.URIException;importorg.apache.commons.httpclient.methods.PostMethod;importorg.apache.commons.httpclient.methods.GetMethod;importorg.apache.commons.httpclient.HttpMethod;importorg.apache.commons.httpclient.HttpStatus;importorg.apache.commons.httpclient.util.URIUtil;importorg.apache.commons.lang.StringUtils;importorg.apache.commons.httpclient.HttpException;public classHttpSenderUtil {/*** 向指定 URL 发送POST方法的请求
*
*@paramurl
* 发送请求的 URL
*@paramparam
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
*@return所代表远程资源的响应结果*/
public staticString sendPost(String url, String param) {
PrintWriter out= null;
BufferedReader in= null;
String result= "";try{
URL realUrl= newURL(url);//打开和URL之间的连接
URLConnection conn =realUrl.openConnection();//设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");//发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);//获取URLConnection对象对应的输出流
out = newPrintWriter(conn.getOutputStream());//发送请求参数
out.print(param);//flush输出流的缓冲
out.flush();//定义BufferedReader输入流来读取URL的响应
in = newBufferedReader(newInputStreamReader(conn.getInputStream()));
String line;while ((line = in.readLine()) != null) {
result+=line;
}
}catch(Exception e) {
System.out.println("发送 POST 请求出现异常!" +e);
e.printStackTrace();
}//使用finally块来关闭输出流、输入流
finally{try{if (out != null) {
out.close();
}if (in != null) {
in.close();
}
}catch(IOException ex) {
ex.printStackTrace();
}
}returnresult;
}public static String httpSend(String url, Map propsMap) throwsException{
HttpClient httpClient= newHttpClient();
PostMethod postMethod= new PostMethod(url);//POST请求
String returnString ="";//参数设置
Set keySet =propsMap.keySet();
NameValuePair[] postData= newNameValuePair[keySet.size()];int index = 0;for(String key : keySet) {
postData[index++] = newNameValuePair(key, propsMap.get(key).toString());
}
postMethod.addParameters(postData);try{
httpClient.executeMethod(postMethod);//发送请求
java.io.InputStream input =postMethod.getResponseBodyAsStream();
returnString=convertStreamToString(input).toString();
}catch(HttpException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}finally{
postMethod.releaseConnection();//关闭连接
}returnreturnString;
}public staticString convertStreamToString(java.io.InputStream input)throwsException {
BufferedReader reader= new BufferedReader(newInputStreamReader(input,"UTF-8"));
StringBuilder sb= newStringBuilder();
String line= null;while ((line = reader.readLine()) != null) {
sb.append(line+ "\n");
}
input.close();returnsb.toString();
}public static voidmain(String[] strs){long time=newDate().getTime();
String check=MD5.getMD5(time+"www.j1.com");
String mobile="13053702096";
String msg="尊敬的用户 , 您在健一网的安全验证码为897489,健一网祝您身体健康";
String param="t="+time+"&mobile="+mobile+"&msg="+msg+"&check="+check;
String res=HttpSenderUtil.sendPost("http://localhost:8080/ec-dec/page/sms/sendSms/code",param);
System.out.println(res);
}/*** 执行get方法
*@paramurl
*@paramqueryString
*@return
*/
public staticString doGet(String url, String queryString) {
String response= null;
HttpClient client= newHttpClient();
HttpMethod method= newGetMethod(url);try{if(StringUtils.isNotBlank(queryString))
method.setQueryString(URIUtil.encodeQuery(queryString));
client.executeMethod(method);if (method.getStatusCode() ==HttpStatus.SC_OK) {
response=method.getResponseBodyAsString();
}
}catch(URIException e) {//logger.error("执行HTTP Get请求时,编码查询字符串“" + queryString + "”发生异常!", e);
} catch(IOException e) {//logger.error("执行HTTP Get请求" + url + "时,发生异常!", e);
} finally{
method.releaseConnection();
}returnresponse;
}
}