使用客户端工具调试权限接口

文件名称 版本号 作者 qq 版本
使用客户端工具调试权限接口 v0.0.2 若布与宫合 8416837 Chrome 83
EOLINKER 客户端 6.7.0.3

说明

  • 我们的后台管理接口往往是有权限的,因此调试时需要传鉴权参数
  • HTTP客户端工具 1)代码;2)成品的客户端软件;

使用成品的客户端软件

准备EOLINKER 客户端或Postman

HTTPClient下载

操作步骤

先使用浏览器访问接口成功|或者用工具访问授权接口获取token成功

  • 打开Google Chrome浏览器,输入页面、用户名称、用户密码,成功登录页面
  • 按F12,点击某个导航,浏览器开始调接口,如下图步骤查看接口调用详情:
    *
    在这里插入图片描述

使用HTTPClient调用接口

  • 登录接口的验证码的获取:使用Chrome浏览器,打开登录页,按F12,在这里插入图片描述,刷新验证码,观察XHR信息,找到验证码的UUID并记录,之后使用。注意:uuid和验证码配对。
    如图:
    在这里插入图片描述

  • 打开工具,新建API请求。拷贝上文的链接http://localhost/dev-api/system/user/list?pageNum=1&pageSize=10&beginTime=&endTime=&page=1至工具,执行测试
    在这里插入图片描述

  • 调用失败了,因为接口是有权限的。继续使用客户端工具,按下图步骤执行:
    在这里插入图片描述
    复制的token不能是已过期的

  • 填入请求头参数,执行测试,成功了:
    在这里插入图片描述

  • 其它参数类型,使用如图方式:
    *

使用Java代码调试

  • Java代码
  • 调用逻辑
//    单服务测试
    @Test
    public void invokeService() {

        init();

        Map params = new HashMap();
        params.put("pageNum", 1);
        params.put("pageSize", 50);
        params.put("page", 1);
        params.put("beginTime", "");
        params.put("endTime", "");

        HttpRequestConfig httpRequestConfig = HttpRequestConfig.builder()
                .parameters(params)
                .serviceName("system/user/list")
                .build();

        httpConsumer.requestService(httpRequestConfig);
    }
  • 初始化客户端
	//    初始化
    private void init() {
        Map requestHeaders = new HashMap();
		// 请求头设置
        requestHeaders.put("Authorization", "Bearer d2ffe4f9-ab91-49f4-8ffb-2310b8d8793f");

        String url = "http://localhost:8080/"; // 统一入口

        this.httpConsumer = (HttpConsumer) AbcFactory.getConsumerInstance(HttpCommonConfig.builder().requestUrl(url)
                .customHeader(CustomHeader.builder()
                        .requestHeaders(requestHeaders)
                        .build())
                .timeoutSeconds(5L)
                .requiredAuthen(false)
                .build());
    }
  • 执行,调用成功
10:20:38.573 [main] DEBUG com.abc.def.sdk.role.HttpCommonConsumer - 请求 === http://localhost:8080/system/user/list?pageSize=50&page=1&beginTime=&endTime=&pageNum=1
10:20:38.947 [main] DEBUG com.abc.def.sdk.role.HttpCommonConsumer - 原始响应(字符串) === {"total":2,"rows":[{"searchValue":null,"createBy":"admin",
  • 多线程请求
@Test
    public void invokeService() {

        init();

        Map params = new HashMap();
        params.put("pageNum", 1);
        params.put("pageSize", 50);
        params.put("page", 1);
        params.put("beginTime", "");
        params.put("endTime", "");

        HttpRequestConfig httpRequestConfig = HttpRequestConfig.builder()
                .parameters(params)
                .serviceName("system/user/list")
                .build();

        final int CYCLE_COUNT = 10;

        final CountDownLatch countDownLatch = new CountDownLatch(CYCLE_COUNT);

        for (int i = 0; i < CYCLE_COUNT; i++) {
            
            System.out.println("Execution" + i);
			// ThreadPoolUtil是线程工具,自己弄,网上大把
            ThreadPoolUtil.execute(() -> httpConsumer.requestService(httpRequestConfig));

        }

        try {
			countDownLatch.await(5, TimeUnit.SECONDS);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

查看CountDownLatch教程

猜你喜欢

转载自blog.csdn.net/cc007cc009/article/details/106658576