zoukankan      html  css  js  c++  java
  • HttpClient-get请求/Post请求/Post-Json/Header

    1、Pom文件添加httpClient 依赖

            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.5.5</version>
            </dependency>          

    2、 HttpGet

    import java.io.IOException;
    
    import org.apache.http.Header;
    import org.apache.http.HttpEntity;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    
    public class HttpTest {
        // main Alt+?
        public static void main(String[] args) {
            // 1.创建一个httpclient,默认的
            CloseableHttpClient client = HttpClients.createDefault();
            // 2.创建一个get请求方法
            HttpGet get = new HttpGet("http://mail.163.com");
            CloseableHttpResponse response = null;
            try {
    
                /////
                // 3.执行请求,获取到响应
                response = client.execute(get);
    
                System.out.println(response.getStatusLine());// 状态行
                System.out.println(response.getStatusLine().getStatusCode());// 状态码
                System.out.println(response.getStatusLine().getProtocolVersion());// 协议版本
                System.out.println(response.getStatusLine().getReasonPhrase());// 响应描述
    
                System.out.println("######################");
                Header[] allHeaders = response.getAllHeaders();
                System.out.println(allHeaders.length);
                for (int i = 0; i < allHeaders.length; i++) {
                    System.out.println(allHeaders[i]);
                }
                System.out.println("################");
                System.out.println(response.getFirstHeader("Server"));
                System.out.println(response.getFirstHeader("Server").getValue());// 获取value
                System.out.println(response.getFirstHeader("Content-Type").getValue());// 获取value
    
                System.out.println("################");
                // 实体
                HttpEntity entity = response.getEntity();
                // 获取实体类型
                System.out.println(entity.getContentType());
                // 实体长度,文件下载最常用,一般网页无此参数
                System.out.println(entity.getContentLength());
                // EntityUtils实体类的工具包 ,将实体对象转成Stirng或者byte
                System.out.println(EntityUtils.toString(entity, "utf-8"));// 可以指定编码格式(中文:utf-8或者GBK)
    
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (response != null)
                        response.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            // syso Alt+?
            System.out.println();
        }
    }

    3、HttpPost请求

    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.http.HeaderIterator;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    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;
    
    public class LoginTest {
        public static void main(String[] args) {
            CloseableHttpClient client = HttpClients.createDefault();
    
            HttpPost post = new HttpPost("http://localhost/loginController/loginPage");
            // 表单参数,并放入list中
            NameValuePair username = new BasicNameValuePair("userName", "taki");
            NameValuePair password = new BasicNameValuePair("password", "1");
    
            List<NameValuePair> paramList = new ArrayList<NameValuePair>();
            paramList.add(username);
            paramList.add(password);
    
            CloseableHttpResponse response = null;
            try {
                // form实体,放入到请求中
                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
                post.setEntity(entity);
    
                response = client.execute(post);
                System.out.println(response.getStatusLine().getStatusCode());
                // 根据返回码,200为成功,继续操作
                if (response.getStatusLine().getStatusCode() == 200) {
                    // 读取header
                    HeaderIterator headerIterator = response.headerIterator();
                    while (headerIterator.hasNext()) {
                        System.out.println(headerIterator.next());
                    }
                    System.out.println("####################");
                    // 读取实体
                    System.out.println(EntityUtils.toString(response.getEntity()));
    
                }
    
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (response != null) {
                    try {
                        response.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

    4、HttpPost 请求Json数据(该接口不通)

    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    
    import org.apache.http.HeaderIterator;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.methods.CloseableHttpResponse;
    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.HttpClients;
    import org.apache.http.util.EntityUtils;
    
    public class JsonTest {
    
        public static void main(String[] args) {
            CloseableHttpClient client = HttpClients.createDefault();
            HttpPost post = new HttpPost("http://117.122.238.33/webservice/services/Rest/account");
            post.setHeader("Content-Type", "application/json");
            CloseableHttpResponse response = null;
            try {
                StringEntity entity = new StringEntity(
                        "{"name": "jiaminqiang","billingAddress": "beijing",  "phoneNumber": "15801396646"}");
                post.setEntity(entity);
                
                response = client.execute(post);
                System.out.println(response.getStatusLine().getStatusCode());
                if(response.getStatusLine().getStatusCode() == 201) {
                    HeaderIterator headerIterator = response.headerIterator();
                    while(headerIterator.hasNext()) {
                        System.out.println(headerIterator.next());
                    }
                    System.out.println("##############");
                    System.out.println(EntityUtils.toString(response.getEntity()));
                }
                
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                if(response!=null) {
                    try {
                        response.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
    
        }
    
    
    }

    5、Http添加Header

    import org.apache.http.Header;
    import org.apache.http.HeaderIterator;
    import org.apache.http.HttpRequest;
    import org.apache.http.HttpResponse;
    import org.apache.http.HttpStatus;
    import org.apache.http.HttpVersion;
    import org.apache.http.message.BasicHttpRequest;
    import org.apache.http.message.BasicHttpResponse;
    
    public class HeaderTest {
    
        public static void main(String[] args) {
            HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 404, "not found");
            // request 操作header同response
            HttpRequest request = new BasicHttpRequest("post", "mail.163.com");
            request.addHeader("", "");
            //添加header name唯一
            response.setHeader("Set-Cookie", "test1");
            response.setHeader("Set-Cookie2", "test");
            //添加header name可重复
            response.addHeader("Set-Cookie", "test2");
            // Ctrl + 2 l 自动生成返回类型变量
            Header[] allHeaders = response.getAllHeaders();
            // Ctrl + d 删除一行
            // Ctrl + Shift + f 代码格式化
            // Ctrl + / 注释一行
            // Ctrl + Shift + / 多行注释
            // Ctrl + z 撤销
            // Ctrl + s 保存
            // Header[] allHeaders3 = response.getAllHeaders();
            // String [] s = {"1","2","aa"};
            // for(int i = 0;i<s.length;i++) {
            // System.out.println(s[i]);
            // }
    
            for (int i = 0; i < allHeaders.length; i++) {
                System.out.println(allHeaders[i]);
            }
    
            System.out.println(response.getStatusLine());
    
            System.out.println(response.getFirstHeader("Set-Cookie"));
            System.out.println(response.getLastHeader("Set-Cookie"));
            Header[] headers = response.getHeaders("Set-Cookie");
            System.out.println(headers[0]);
            System.out.println(headers[1]);
            // 遍历迭代器
            HeaderIterator headerIterator = response.headerIterator();
            // System.out.println(headerIterator.nextHeader());
            // System.out.println(headerIterator.nextHeader());
            System.out.println("###################");
    
            while (headerIterator.hasNext()) {
                System.out.println(headerIterator.nextHeader());
            }
        }
    
    }
  • 相关阅读:
    Atitit sumdoc everything index tech and index log 目录 1. 使用的tech 1 1.1. Atitit 日志记录的三个trace跟踪等级文件夹级
    Atitit nlp用到的技术与常见类库 目录 1. 常用的技术 1 1.1. 语言处理基础技术 分词 相似度等 1 1.2. 新闻摘要 2 1.3. 情感倾向分析 2 1.4. 文章标签 2 1.
    Atitit 资源类型的分类法规范MIME类型类型 目录 1.1. 一个MIME类型至少包括两个部分:一个类型(type)和一个子类型(subtype)。 1 1.2. 命名格式MIME类型包括一个
    Atitit 六种知识表示法 目录 1. 知识的静态描述和动态描述 1 1.状态空间表示 以状态和运算符(operator) 1 2.问题归约表示(函数式?? 1 (1)一个初始问题描述; 2 (2)
    微信小程序登录流程总结 目录 1.1. 前端调用wx.login 。。给后端传递一个code 1 1.2. 开发者需要在开发者服务器后台调用 auth.code2Session,使用 code 换取
    Atititi 计算机系 教材 目录 1. 硬件类 2 1.1. 《微机系统与接口技术》 2 1.2. 《计算机组成与系统结构(第2版)》 2 2. Atitit 操作系统原理 操作系统原理(cpu
    Atitit 声音和音乐检索 多媒体信息检索 信息检索 目录 1.1. 14.4.5 音频基础知识 1 1.2. 多媒体信息检索的方法主要有哪些?其原理是什么? 1 1.3. 基于文本的检索和基于
    Atitit 信息检索 v3 t55.docx Atitit 现代信息检索 目录 1.1. 信息检索(索引 索引 结构化文本 1 1.2. Atitit 重要章节 1 1.3. 息检索建模 1 1.
    Atiitt 程序语言vm与rt 虚拟机与运行时 目录 1. 运行时 虚拟机的一种,一般指进程级别的虚拟机。 1 1.1. 线程模型 1 1.2. 堆栈机vs 寄存器 1 1.3. 存储模型 2 1
    Atiitt 图像处理的常见功能业务用途与类库与功能实现 目录 1. 常见业务场景 3 1.1. 缩略图 蒙版遮罩挖空 3 1.2. 区域裁剪,水印,旋转 3 1.3. 判断图像大小分辨率要求
  • 原文地址:https://www.cnblogs.com/zhou-test/p/9993438.html
Copyright © 2011-2022 走看看