栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java代码直接发起http请求

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java代码直接发起http请求

代码
//请求类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LarkRequest {
    String url;
    String method;
    Map headers;
    T requestBody;
}

方法

static class LarkToken{
        String token;
        Long expire;

        public LarkToken(String token, Long expire){
            this.token = token;
            this.expire = expire;
        }
    }
    private static final Map companyTokenMap = new HashMap<>();

    public static HttpResponse execute(LarkRequest request, Company company){
        if(request == null) return null;
        if(request.getHeaders() == null) request.setHeaders(new HashMap<>());
        request.getHeaders().put("Content-Type", "application/json; charset=utf-8");
        HttpResponse response = null;
        LarkToken larkToken = companyTokenMap.get(company.getCompanyId());
        try {
            String token;
            if(larkToken == null || System.currentTimeMillis() / 1000 >= larkToken.expire) {
                token = getToken(company.getAppId(), company.getAppSecret());
            } else {
                token = larkToken.token;
            }
            request.getHeaders().put("Authorization", "Bearer " + token);
            ObjectMapper mapper = new ObjectMapper();
            String bodyStr = mapper.writevalueAsString(request.getRequestBody());
            switch (request.getMethod()) {
                case "GET":
                    response = HttpsClient.doGet(request.getUrl(), request.getHeaders());
                    break;
                case "POST":
                    response = HttpsClient.doPost(request.getUrl(), bodyStr, request.getHeaders());
                    break;
                case "PATCH":
                    response = HttpsClient.doPatch(request.getUrl(), bodyStr, request.getHeaders());
                    break;
                case "DELETE":
                    response = HttpsClient.doDelete(request.getUrl(),bodyStr, request.getHeaders());
                    break;
                case "PUT":
                    response = HttpsClient.doPut(request.getUrl(), bodyStr, request.getHeaders());
                    break;
            }
        } catch (Exception e) {
            LoggerUtil.getLogger(LarkRequestBuilder.class).warn(e.getMessage());
            e.printStackTrace();
        }
        return response;
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/397043.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号