当前位置 主页 > 服务器问题 > Linux/apache问题 >

    java发送HttpClient请求及接收请求结果过程的简单实例

    栏目:Linux/apache问题 时间:2019-10-29 10:08

    一.

    1、写一个HttpRequestUtils工具类,包括post请求和get请求

    package com.brainlong.framework.util.httpclient; 
    import net.sf.json.JSONObject;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory; 
    import java.io.IOException;import java.net.URLDecoder; public class HttpRequestUtils {  
    private static Logger logger = LoggerFactory.getLogger(HttpRequestUtils.class);  
    //日志记录   /**   * httpPost   * @param url 路径   * @param jsonParam 参数   * @return   */  
    public static JSONObject httpPost(String url,JSONObject jsonParam){    
    return httpPost(url, jsonParam, false);  
    }   
    /**   * post请求   * @param url     url地址   * @param jsonParam   参数   * @param noNeedResponse  不需要返回结果   * @return   */  
    public static JSONObject httpPost(String url,JSONObject jsonParam, boolean noNeedResponse){    
    //post请求返回结果    
    DefaultHttpClient httpClient = new DefaultHttpClient();    
    JSONObject jsonResult = null;    
    HttpPost method = new HttpPost(url);    
    try {      
    if (null != jsonParam) {        
    //解决中文乱码问题        
    StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8");        
    entity.setContentEncoding("UTF-8");        
    entity.setContentType("application/json");        
    method.setEntity(entity);      }      
    HttpResponse result = httpClient.execute(method);      
    url = URLDecoder.decode(url, "UTF-8");      
    /**请求发送成功,并得到响应**/      
    if (result.getStatusLine().getStatusCode() == 200) {        
    String str = "";        
    try {          
    /**读取服务器返回过来的json字符串数据**/          
    str = EntityUtils.toString(result.getEntity());          
    if (noNeedResponse) {            
    return null;          
    }          
    /**把json字符串转换成json对象**/          
    jsonResult = JSONObject.fromObject(str);        
    } catch (Exception e) {          
    logger.error("post请求提交失败:" + url, e);        
    }      
    }    
    } catch (IOException e) {      
    logger.error("post请求提交失败:" + url, e);    
    }    
    return jsonResult;  
    }   
    /**   * 发送get请求   * @param url  路径   * @return   */  
    public static JSONObject httpGet(String url){    
    //get请求返回结果    
    JSONObject jsonResult = null;    
    try {      
    DefaultHttpClient client = new DefaultHttpClient();      
    //发送get请求      
    HttpGet request = new HttpGet(url);      
    HttpResponse response = client.execute(request);       
    /**请求发送成功,并得到响应**/      
    if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {        
    /**读取服务器返回过来的json字符串数据**/        
    String strResult = EntityUtils.toString(response.getEntity());        
    /**把json字符串转换成json对象**/        
    jsonResult = JSONObject.fromObject(strResult);        
    url = URLDecoder.decode(url, "UTF-8");      
    } else {        
    logger.error("get请求提交失败:" + url);      
    }    
    } catch (IOException e) {      
    logger.error("get请求提交失败:" + url, e);    
    }    
    return jsonResult;  }}