easy-okhttp的简介以及使用

easy-okhttp框架简介

easy-okhttp是对okhttp3上层封装的网络框架,支持文件上传和下载表单提交(文件和一个参数对应多值),链式调用,并且默认整合Gson,对返回结果多种转换,
同时还支持HTTPS单向认证和双向认证等特性。

easy-okhttp框架特性

  • 仅支持GET和POST两种方式,其他如PUT等不太常用,就暂不支持
  • 基于POST的大文本数据、二进制文件上传,即通过Http Body提交
  • 表单提交,带有文件的表单提交和表单提交支持参数名重复,在后台接收到的是数组或集合
  • 支持session保持
  • 对HTTPS支持单向认证和双向认证
  • 支持同步请求和异步请求,统一的数据处理接口
  • 开箱即用,默认的配置基本上满足需求

easy-okhttp框架引入

<dependency>
    <groupId>com.mzlion</groupId>
    <artifactId>easy-okhttp</artifactId>
    <version>1.0.7-beta</version>
</dependency>

普通GET请求

        String timeStamp = String.valueOf(System.currentTimeMillis() / NumberEnum.THOUSAND.getCode());

        String md5DigestAsHex = DigestUtils.md5DigestAsHex((apiKey + "00001" + timeStamp + salt).getBytes());

        String responseData = HttpClient
                .get(url + "/piccre/aml-server/api/aml/outside/v1/queryRiskGradeInfo")
                .header("apiKey", apiKey)
                .header("apiCode", "00001")
                .header("timeStamp", timeStamp)
                .header("sign", md5DigestAsHex)
                .execute()
                .asString();

        Map<String, Object> map = JSON.parseObject(responseData, Map.class);

        if ((Integer) map.get("status") != NumberEnum.ZERO.getCode()) {

            throw new BusinessException("接口失败");
        }

普通GET请求带参数

        String timeStamp = String.valueOf(System.currentTimeMillis() / NumberEnum.THOUSAND.getCode());

        String md5DigestAsHex = DigestUtils.md5DigestAsHex((apiKey + "00005" + timeStamp + salt).getBytes());

        String responseData = HttpClient
                .get(url + "/piccre/aml-server/api/aml/outside/v1/getRiskGradeHis")
                .header("apiKey", apiKey)
                .header("apiCode", "00005")
                .header("timeStamp", timeStamp)
                .header("sign", md5DigestAsHex)
                .queryString("idKey",applyReinsCode)
                .execute()
                .asString();

        Map<String, Object> res = JSON.parseObject(responseData, Map.class);

        if ((Integer) res.get("status") != NumberEnum.ZERO.getCode()) {

            throw new BusinessException("接口失败");
        }

普通表单POST

一般POST提交都是基于表单提交,即提交的时候会携带Content-Type="application/x-www-form-urlencoded"使用方式如下:

    String timeStamp = String.valueOf(System.currentTimeMillis() / NumberEnum.THOUSAND.getCode());

    String md5DigestAsHex = DigestUtils.md5DigestAsHex((apiKey + "00005" + timeStamp + salt).getBytes());

    String responseData = HttpClient
            .post(url + "/piccre/aml-server/api/aml/outside/v1/getRiskGradeHis")
            .header("apiKey", apiKey)
            .header("apiCode", "00005")
            .header("timeStamp", timeStamp)
            .header("sign", md5DigestAsHex)
            .param("idKey","小勾")
            .param("age","18")
            .execute()
            .asString();

    Map<String, Object> res = JSON.parseObject(responseData, Map.class);

    if ((Integer) res.get("status") != NumberEnum.ZERO.getCode()) {

        throw new BusinessException("接口失败");
    }

String提交POST

所谓String提交POST,就是将一段字符串直接扔进Request请求中,字符串一般都是有格式约定的,比如是xml、json或其他等。
比如像微信开放平台(https://mp.weixin.qq.com/)的接口,所有数据提交方式就是这种。

        String timeStamp = String.valueOf(System.currentTimeMillis() / NumberEnum.THOUSAND.getCode());

        String md5DigestAsHex = DigestUtils.md5DigestAsHex((apiKey + "00003" + timeStamp + salt).getBytes());

        String responseData = HttpClient
                .textBody(url + "/piccre/aml-server/api/aml/outside/v1/getRiskResult")
                .header("apiKey", apiKey)
                .header("apiCode", "00003")
                .header("timeStamp", timeStamp)
                .header("sign", md5DigestAsHex)
                .json(JSON.toJSONString(antiMoneyLaunderDto))
                .execute()
                .asString();

        Map<String, Object> res = JSON.parseObject(responseData, Map.class);

        if ((Integer) res.get("status") != NumberEnum.ZERO.getCode()) {

            throw new BusinessException("接口失败");
        }
posted @ 2022-04-11 15:57  迁承_0204  阅读(460)  评论(0编辑  收藏  举报