zoukankan      html  css  js  c++  java
  • HttpClient发送Get和Post请求

    package JanGin.httpClient.demo;
     
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.util.ArrayList;
    import java.util.List;
     
    import org.apache.http.HttpEntity;
    import org.apache.http.NameValuePair;
    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.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    import org.junit.Test;
     
    public class FirstDemo {
     
        /**
         * 通过GET方式发起http请求
         */
        @Test
        public void requestByGetMethod(){
            //创建默认的httpClient实例
            CloseableHttpClient httpClient = getHttpClient();
            try {
                //用get方法发送http请求
                HttpGet get = new HttpGet("http://www.baidu.com");
                System.out.println("执行get请求:...."+get.getURI());
                CloseableHttpResponse httpResponse = null;
                //发送get请求
                httpResponse = httpClient.execute(get);
                try{
                    //response实体
                    HttpEntity entity = httpResponse.getEntity();
                    if (null != entity){
                        System.out.println("响应状态码:"+ httpResponse.getStatusLine());
                        System.out.println("-------------------------------------------------");
                        System.out.println("响应内容:" + EntityUtils.toString(entity));
                        System.out.println("-------------------------------------------------");                    
                    }
                }
                finally{
                    httpResponse.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            finally{
                try{
                    closeHttpClient(httpClient);
                } catch (IOException e){
                    e.printStackTrace();
                }
            }
     
        }
         
         
        /**
         * POST方式发起http请求
         */
        @Test
        public void requestByPostMethod(){
            CloseableHttpClient httpClient = getHttpClient();
            try {
                HttpPost post = new HttpPost("http://localhost/....");          //这里用上本机的某个工程做测试
                //创建参数列表
                List<NameValuePair> list = new ArrayList<NameValuePair>();
                list.add(new BasicNameValuePair("j_username", "admin"));
                list.add(new BasicNameValuePair("j_password", "admin"));
                //url格式编码
                UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(list,"UTF-8");
                post.setEntity(uefEntity);
                System.out.println("POST 请求...." + post.getURI());
                //执行请求
                CloseableHttpResponse httpResponse = httpClient.execute(post);
                try{
                    HttpEntity entity = httpResponse.getEntity();
                    if (null != entity){
                        System.out.println("-------------------------------------------------------");
                        System.out.println(EntityUtils.toString(uefEntity));
                        System.out.println("-------------------------------------------------------");
                    }
                } finally{
                    httpResponse.close();
                }
                 
            } catch( UnsupportedEncodingException e){
                e.printStackTrace();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            finally{
                try{
                    closeHttpClient(httpClient);                
                } catch(Exception e){
                    e.printStackTrace();
                }
            }
             
        }
         
        private CloseableHttpClient getHttpClient(){
            return HttpClients.createDefault();
        }
         
        private void closeHttpClient(CloseableHttpClient client) throws IOException{
            if (client != null){
                client.close();
            }
        }
    }
  • 相关阅读:
    C++ primer 简读
    C++函数及类方法(待补充)
    C++参数传递-复制和引用
    c++动态分配内存
    C++内存与指针
    c++循环
    C++容器vector及迭代器对象iterator
    c++字符类型一些知识点
    CNN中卷积运算转化成矩阵乘法的实现——img2col+GEMM大矩阵乘法
    046 LeetCode go
  • 原文地址:https://www.cnblogs.com/dtest/p/5282537.html
Copyright © 2011-2022 走看看