packageeidolon.messageback.PostUtil;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.net.URI;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importorg.apache.http.HttpEntity;importorg.apache.http.HttpResponse;importorg.apache.http.HttpStatus;importorg.apache.http.NameValuePair;importorg.apache.http.StatusLine;importorg.apache.http.client.HttpClient;importorg.apache.http.client.entity.UrlEncodedFormEntity;importorg.apache.http.client.methods.CloseableHttpResponse;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.entity.StringEntity;importorg.apache.http.impl.client.CloseableHttpClient;importorg.apache.http.impl.client.DefaultHttpClient;importorg.apache.http.impl.client.HttpClients;importorg.apache.http.message.BasicNameValuePair;importorg.apache.http.protocol.HTTP;importorg.apache.http.util.EntityUtils;/***
* @作者 陈祥
* @创建时间 2018年6月8日
* @功能描述 HttpClient工具类*/
public classHttpUtil {/*** get请求
*@return
*/
public staticString doGet(String url) {try{
HttpClient client= newDefaultHttpClient();//发送get请求
HttpGet request = newHttpGet(url);
HttpResponse response=client.execute(request);/**请求发送成功,并得到响应**/
if (response.getStatusLine().getStatusCode() ==HttpStatus.SC_OK) {/**读取服务器返回过来的json字符串数据**/String strResult=EntityUtils.toString(response.getEntity());returnstrResult;
}
}catch(IOException e) {
e.printStackTrace();
}return null;
}/*** post请求(用于key-value格式的参数)
*@paramurl
*@paramparams
*@return
*/
public staticString doPost(String url, Map params){
BufferedReader in= null;try{//定义HttpClient
HttpClient client = newDefaultHttpClient();//实例化HTTP方法
HttpPost request = newHttpPost();
request.setURI(newURI(url));//设置参数
List nvps = new ArrayList();for (Iterator iter =params.keySet().iterator(); iter.hasNext();) {
String name=(String) iter.next();
String value=String.valueOf(params.get(name));
nvps.add(newBasicNameValuePair(name, value));//System.out.println(name +"-"+value);
}
request.setEntity(newUrlEncodedFormEntity(nvps,HTTP.UTF_8));
HttpResponse response=client.execute(request);int code =response.getStatusLine().getStatusCode();if(code == 200){ //请求成功
in = new BufferedReader(newInputStreamReader(response.getEntity()
.getContent(),"utf-8"));
StringBuffer sb= new StringBuffer("");
String line= "";
String NL= System.getProperty("line.separator");while ((line = in.readLine()) != null) {
sb.append(line+NL);
}
in.close();returnsb.toString();
}else{ // System.out.println("状态码:" +code);return null;
}
}catch(Exception e){
e.printStackTrace();return null;
}
}/*** post请求(用于请求json格式的参数)
*@paramurl
*@paramparams
*@return
*/
public static String doPost(String url, String params) throwsException {
CloseableHttpClient httpclient=HttpClients.createDefault();
HttpPost httpPost= new HttpPost(url);//创建httpPost
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-Type", "application/json");
String charSet= "UTF-8";
StringEntity entity= newStringEntity(params, charSet);
httpPost.setEntity(entity);
CloseableHttpResponse response= null;try{
response=httpclient.execute(httpPost);
StatusLine status=response.getStatusLine();int state =status.getStatusCode();if (state ==HttpStatus.SC_OK) {
HttpEntity responseEntity=response.getEntity();
String jsonString=EntityUtils.toString(responseEntity);returnjsonString;
}else{
System.err.println("请求返回:"+state+"("+url+")");
}
}finally{if (response != null) {try{
response.close();
}catch(IOException e) {
e.printStackTrace();
}
}try{
httpclient.close();
}catch(IOException e) {
e.printStackTrace();
}
}return null;
}
}