packageorg.jeecgframework.test.demo;importjava.io.BufferedReader;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.io.OutputStreamWriter;importjava.io.UnsupportedEncodingException;importjava.net.ConnectException;importjava.net.HttpURLConnection;importjava.net.Socket;importjava.net.URL;importjava.net.URLConnection;importjava.net.URLEncoder;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Map.Entry;importjava.util.Set;importjava.util.SortedMap;importorg.apache.http.HttpResponse;importorg.apache.http.NameValuePair;importorg.apache.http.client.HttpClient;importorg.apache.http.client.entity.UrlEncodedFormEntity;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.impl.client.DefaultHttpClient;importorg.apache.http.message.BasicNameValuePair;public classHttpClientHelper {/*** @Description:使用HttpURLConnection发送post请求
*@author:liuyc
* @time:2016年5月17日 下午3:26:07*/
public static String sendPost(String urlParam, Mapparams, String charset) {
StringBuffer resultBuffer= null;//构建请求参数
StringBuffer sbParams = newStringBuffer();if (params != null && params.size() > 0) {for (Entrye : params.entrySet()) {
sbParams.append(e.getKey());
sbParams.append("=");
sbParams.append(e.getValue());
sbParams.append("&");
}
}
HttpURLConnection con= null;
OutputStreamWriter osw= null;
BufferedReader br= null;//发送请求
try{
URL url= newURL(urlParam);
con=(HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setDoInput(true);
con.setUseCaches(false);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");if (sbParams != null && sbParams.length() > 0) {
osw= newOutputStreamWriter(con.getOutputStream(), charset);
osw.write(sbParams.substring(0, sbParams.length() - 1));
osw.flush();
}//读取返回内容
resultBuffer = newStringBuffer();int contentLength = Integer.parseInt(con.getHeaderField("Content-Length"));if (contentLength > 0) {
br= new BufferedReader(newInputStreamReader(con.getInputStream(), charset));
String temp;while ((temp = br.readLine()) != null) {
resultBuffer.append(temp);
}
}
}catch(Exception e) {throw newRuntimeException(e);
}finally{if (osw != null) {try{
osw.close();
}catch(IOException e) {
osw= null;throw newRuntimeException(e);
}finally{if (con != null) {
con.disconnect();
con= null;
}
}
}if (br != null) {try{
br.close();
}catch(IOException e) {
br= null;throw newRuntimeException(e);
}finally{if (con != null) {
con.disconnect();
con= null;
}
}
}
}returnresultBuffer.toString();
}/*** @Description:使用HttpClient发送post请求
*@author:liuyc
* @time:2016年5月17日 下午3:28:23*/
public static String httpClientPost(String urlParam, Mapparams, String charset) {
StringBuffer resultBuffer= null;
HttpClient client= newDefaultHttpClient();
HttpPost httpPost= newHttpPost(urlParam);//构建请求参数
List list = new ArrayList();
Iterator> iterator =params.entrySet().iterator();while(iterator.hasNext()) {
Entry elem =iterator.next();
list.add(newBasicNameValuePair(elem.getKey(), String.valueOf(elem.getValue())));
}
BufferedReader br= null;try{if (list.size() > 0) {
UrlEncodedFormEntity entity= newUrlEncodedFormEntity(list, charset);
httpPost.setEntity(entity);
}
HttpResponse response=client.execute(httpPost);//读取服务器响应数据
resultBuffer = newStringBuffer();
br= new BufferedReader(newInputStreamReader(response.getEntity().getContent()));
String temp;while ((temp = br.readLine()) != null) {
resultBuffer.append(temp);
}
}catch(Exception e) {throw newRuntimeException(e);
}finally{if (br != null) {try{
br.close();
}catch(IOException e) {
br= null;throw newRuntimeException(e);
}
}
}returnresultBuffer.toString();
}//请求xml组装
public static String getRequestXml(SortedMapparameters){
StringBuffer sb= newStringBuffer();
sb.append("");
Set es=parameters.entrySet();
Iterator it=es.iterator();while(it.hasNext()) {
Map.Entry entry=(Map.Entry)it.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();if ("attach".equalsIgnoreCase(key)||"body".equalsIgnoreCase(key)||"sign".equalsIgnoreCase(key)) {
sb.append(""+""+key+">");
}else{
sb.append(""+value+""+key+">");
}
}
sb.append("");returnsb.toString();
}//生成签名
public static String createSign(String characterEncoding,SortedMapparameters){
StringBuffer sb= newStringBuffer();
Set es=parameters.entrySet();
Iterator it=es.iterator();while(it.hasNext()) {
Map.Entry entry=(Map.Entry)it.next();
String k=(String)entry.getKey();
Object v=entry.getValue();if(null != v && !"".equals(v)&& !"sign".equals(k) && !"key".equals(k)) {
sb.append(k+ "=" + v + "&");
}
}
sb.append("key=" + "");
String sign=MD5.md5(sb.toString()).toUpperCase();returnsign;
}//请求方法
public staticString httpsRequest(String requestUrl, String requestMethod, String data) {try{
URL url= newURL(requestUrl);
HttpURLConnection conn=(HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);//设置请求方式(GET/POST)
conn.setRequestMethod(requestMethod);
conn.setRequestProperty("content-type", "application/json");//conn.setRequestProperty("content-type", "text/xml;charset=utf-8");//当outputStr不为null时向输出流写数据
if (null !=data) {
OutputStream outputStream=conn.getOutputStream();//注意编码格式
outputStream.write(data.getBytes("UTF-8"));
outputStream.close();
}//从输入流读取返回内容
InputStream inputStream =conn.getInputStream();
InputStreamReader inputStreamReader= new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader= newBufferedReader(inputStreamReader);
String str= null;
StringBuffer buffer= newStringBuffer();while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}//释放资源
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
inputStream= null;
conn.disconnect();returnbuffer.toString();
}catch(ConnectException ce) {
System.out.println("连接超时:{}"+ce);
}catch(Exception e) {
System.out.println("https请求异常:{}"+e);
}return null;
}public static voidmain(String[] args) {
String requestUrl,requestMethod,outputStr;
requestUrl="(此处填写你要请求的url地址)";
requestMethod="POST";
outputStr=""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
""+
"";//错误的json请求//String data = "[{\"id\":1,\"name\":\"o2o_V3.0新版发布\",\"content\":\"o2o_V3.0新版发布\",\"time\":\"2015-05-11 03:12:51\"}]";String data= "{\"id\":1,\"name\":\"o2o_V3.0新版发布\",\"content\":\"o2o_V3.0新版发布\",\"time\":\"2015-05-11 03:12:51\"}";
String xml=httpsRequest(requestUrl,requestMethod,data);
System.out.println(xml);//System.out.println(outputStr);
}
}