Post请求携带Basic Auth

鲜于喜
2023-12-01

场景: 由于多次调用对方接口失败,对方修改了请求规则,采取Basic Auth进行请求,提供对应的用户名、密码,对接过程中需要请求对方接口,需要添加该Basic Auth.

        在PostMan中调用,该参数写的很方便,在代码逻辑中实现,该参数需要安置在Header头中,具体使用如下:

        Basic Auth作为请求头是以 Base64对用户名密码加密 规则: secret = 用户名:密码
对该secret进行加密 ,加密后 Http请求头样式为 Basic secret内容(注意Basic和secret中间有空格) 代码如下:

        String username = "test";
        String password = "123456789";
        String userMsg = username + ":" + password;
        String base64UserMsg = Base64.getEncoder().encodeToString(userMsg.getBytes());
        String authorization = "Basic "+base64UserMsg;
        System.out.println(authorization);

将这个authorization放入一个Map作为请求头

        Map<String, String> msgHeaderParams = new HashMap<>();
        msgHeaderParams.put("Authorization", authorization);

使用HttpUtil创建post请求,加入该请求头,进行请求

        String result = HttpUtil.createPost(url).body(testbody)
                .headerMap(msgHeaderParams,false).execute().body();
        JSONObject jsonResult = JSONUtil.parseObj(result);

这样就完成一次携带Basic Auth的POST请求了。 

 类似资料: