美文网首页Spring-Boot简友广场JAVA
java发送http、https请求

java发送http、https请求

作者: 阿靖哦 | 来源:发表于2019-05-17 22:57 被阅读44次

    使用tools-httpclient即可在项目中快速发送HTTP/HTTPS请求 ,目前支持POST .GET .DELETE . PUT四种常用请求,并支持POST使用JSON传参

    项目使用方式:

    1. 添加依赖:
    <dependency>
        <groupId>cn.gjing</groupId>
        <artifactId>tools-httpclient</artifactId>
        <version>1.0.0</version>
    </dependency>
    
    1. 需要使用的接口中直接使用:
    • HTTP请求(GET案例)
    public static void main(String[] args) {    
        Map<String, String> map = new HashMap<>(16);
        map.put("a", "参数a");
        map.put("b", "参数b");
        //发送http请求
        String result = HttpClient.get("http://127.0.0.1:8080/test", map, String.class);
        System.out.println(result);
    }
    
    • HTTPS请求(POST案例)
    public static void main(String[] args) {    
        Map<String, String> map = new HashMap<>(16);
        map.put("a", "参数a");
        map.put("b", "参数b");
        //发送https请求
        Map result = HttpClient.post("https://127.0.0.1:8080/test", map, Map.class);
        System.out.println(result.toString());
    }
    
    • DELETE案例
    public static void main(String[] args) {    
        ResultBean result = HttpClient.delete("http://127.0.0.1:8080/test/1", ResultBean.class);
        System.out.println(result.toString());
    }
    
    • PUT案例
    public static void main(String[] args) {    
        Integer result = HttpClient.put("https://127.0.0.1:8080/test/2", Integer.class);
        System.out.println(result);
    }
    

    HttpClient参数说明(必填项参数除外的任意参数不需要时可直接传null):
    • url: 请求地址 (必填)
    • queryMap: 请求参数
    • headers:请求头
    • connectTimeout:请求超时时间,默认5s
    • readTimeout:读超时时间,默认10秒
    • responseType:响应结果返回类型(必填)
    • body:JSON对象,调用的目标方法参数使用@RequestBody接收参数时使用

    tip: 响应结果返回类型最好设置与目标方法一致,否则可能会出现转换异常

    目标方法

    @GetMapping("/test")
    public Integer test() {
        return 1111;
    }
    

    调用方

    public static void main(String[] args) {
        Map result = HttpClient.get("http://127.0.0.1:8080/test", Map.class);
        System.out.println(result.toString());
    }
    

    由于目标方法返回的为Integer类型,不是key,value类型,故调用方使用Map接收会出现转换异常。


    1. UrlUtil工具类
    • urlAppend(用于URL地址直接带参)
        public static void main(String[] args) {
            String url = "http://127.0.0.1:8080/";
            Object[] param = {1, 2, 3, 4};
            System.out.println(UrlUtil.urlAppend(url, param));
        }
        输出结果为:http://127.0.0.1:8080/1/2/3/4/
    
    • paramUnicodeSort(参数按照字段名的Unicode码从小到大排序(字典序))
        public static void main(String[] args) {
            Map<String, Object> map = new HashMap<>(16);
            map.put("a", "参数1");
            map.put("b", "参数2");
            /*
                该方法带三个参数,分别为:
                paramMap: 参数
                urlEncode: 是否进行URL encode
                keyToLower: 转换后的参数的key值是否转为小写
             */
            System.out.println(UrlUtil.paramUnicodeSort(map, false, false));
        }
        输出结果为:a=参数1&b=参数2
    
    • urlParamToMap(将URL地址后带的参数转成map)
        public static void main(String[] args) {
            String url = "http://127.0.0.1:8080?a=2&b=2";
            System.out.println(UrlUtil.urlParamToMap(url));
        }
        输出结果为:{a=2, b=2}
    

    项目源代码可前往GitHUb查看:tools-httpclient

    觉得满意希望点个喜欢和star哦 !

    相关文章

      网友评论

        本文标题:java发送http、https请求

        本文链接:https://www.haomeiwen.com/subject/dtuaaqtx.html