使用客戶端工具調試權限接口

文件名稱 版本號 作者 qq 版本
使用客戶端工具調試權限接口 v0.0.1 若布與宮合 8416837 Chrome 83
EOLINKER 客戶端 6.7.0.3

說明

  • 我們的後臺管理接口往往是有權限的,因此調試時需要傳鑑權參數
  • HTTP客戶端工具 1)代碼;2)成品的客戶端軟件;

使用成品的客戶端軟件

準備EOLINKER 客戶端或Postman

操作步驟

先使用瀏覽器訪問接口成功

  • 打開Google Chrome瀏覽器,輸入頁面、用戶名稱、用戶密碼,成功登錄頁面
  • 按F12,點擊某個導航,瀏覽器開始調接口,如下圖步驟查看接口調用詳情:
    *
    在這裏插入圖片描述

使用HTTPClient調用接口

  • 打開工具,新建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教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章