频道栏目
首页 > 资讯 > 其他综合 > 正文

httpclient封装post请求和get请求

18-03-21        来源:[db:作者]  
收藏   我要投稿

httpclient封装post请求和get请求

    import java.io.BufferedReader;  
    import java.io.IOException;  
    import java.io.InputStreamReader;  
    import java.net.URI;  
    import java.util.ArrayList;  
    import java.util.Iterator;  
    import java.util.List;  
    import java.util.Map;  
      
    import org.apache.http.HttpEntity;  
    import org.apache.http.HttpResponse;  
    import org.apache.http.HttpStatus;  
    import org.apache.http.NameValuePair;  
    import org.apache.http.StatusLine;  
    import org.apache.http.client.HttpClient;  
    import org.apache.http.client.entity.UrlEncodedFormEntity;  
    import org.apache.http.client.methods.CloseableHttpResponse;  
    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.CloseableHttpClient;  
    import org.apache.http.impl.client.DefaultHttpClient;  
    import org.apache.http.impl.client.HttpClients;  
    import org.apache.http.message.BasicNameValuePair;  
    import org.apache.http.protocol.HTTP;  
    import org.apache.http.util.EntityUtils;  
    import org.apache.log4j.Logger;  
      
    /** 
     * HttpClient工具类 
     */  
    public class HttpUtil {  
          
        private static Logger logger = Logger.getLogger(HttpUtil.class);  
      
        /** 
         * get请求 
         * @return 
         */  
        public static String doGet(String url) {  
            try {  
                HttpClient 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());  
                      
                    return strResult;  
                }  
            }   
            catch (IOException e) {  
                e.printStackTrace();  
            }  
              
            return null;  
        }  
          
        /** 
         * post请求(用于key-value格式的参数) 
         * @param url 
         * @param params 
         * @return 
         */  
        public static String doPost(String url, Map params){  
              
            BufferedReader in = null;    
            try {    
                // 定义HttpClient    
                HttpClient client = new DefaultHttpClient();    
                // 实例化HTTP方法    
                HttpPost request = new HttpPost();    
                request.setURI(new URI(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(new BasicNameValuePair(name, value));  
                      
                    //System.out.println(name +"-"+value);  
                }  
                request.setEntity(new UrlEncodedFormEntity(nvps,HTTP.UTF_8));  
                  
                HttpResponse response = client.execute(request);    
                int code = response.getStatusLine().getStatusCode();  
                if(code == 200){    //请求成功  
                    in = new BufferedReader(new InputStreamReader(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();    
                      
                    return sb.toString();  
                }  
                else{   //  
                    System.out.println("状态码:" + code);  
                    return null;  
                }  
            }  
            catch(Exception e){  
                e.printStackTrace();  
                  
                return null;  
            }  
        }  
          
        /** 
         * post请求(用于请求json格式的参数) 
         * @param url 
         * @param params 
         * @return 
         */  
        public static String doPost(String url, String params) throws Exception {  
              
            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 = new StringEntity(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);  
                    return jsonString;  
                }  
                else{  
                     logger.error("请求返回:"+state+"("+url+")");  
                }  
            }  
            finally {  
                if (response != null) {  
                    try {  
                        response.close();  
                    } catch (IOException e) {  
                        e.printStackTrace();  
                    }  
                }  
                try {  
                    httpclient.close();  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }  
            }  
            return null;  
        }  
          
    }  
相关TAG标签
上一篇:scrapy图片
下一篇:Dalvik虚拟机特点以及和Java虚拟机的区别讲解
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站