OKHTTP3 --钉钉群机器人 Spring Mail发邮件

 

 

public class HttpUtil {

 

  // 支持直接在String参数中传入文件

  public static final String FILE_LABEL = "file:";

 

  public static IResponse executeRequest(String url, String param, RequestMethod method,

      Map<String, String> headers) {

    return executeRequest(createDefaultHelper(), url, param, method, headers);

  }

 

  public static IResponse executeRequest(IHttpHelper httpHelper, String url, String param,

      RequestMethod method, Map<String, String> headers) {

    IResponse response = null;

    if (param != null && param.startsWith(FILE_LABEL)) {

      // 单个文件

      File file = new File(param.substring(FILE_LABEL.length()));

      response = httpHelper.executeRequest(new RequestParam(url, file, method, headers));

    } else {

      JSONObject jsonData = safeParseAsJson(param);

      if (jsonData != null) {

        if (param.contains(FILE_LABEL)) {

          // 参数中包含文件

          HashMap<String, Object> paramMap = new HashMap<String, Object>(5);

          for (Map.Entry<String, Object> entry : jsonData.entrySet()) {

            if (entry.getValue() instanceof String

                && ((String) entry.getValue()).startsWith(FILE_LABEL)) {

              File newFile = new File(((String) entry.getValue()).substring(FILE_LABEL.length()));

              // 转换为File对象

              paramMap.put(entry.getKey(), newFile);

            } else {

              paramMap.put(entry.getKey(), entry.getValue());

            }

          }

          response = httpHelper.executeRequest(new RequestParam(url, paramMap, method, headers));

        } else {

          response = httpHelper.executeRequest(new RequestParam(url, jsonData, method, headers));

        }

      } else {

        response = httpHelper.executeRequest(new RequestParam(url, param, method, headers));

      }

    }

    return response;

  }

 

  public static IResponse executeRequest(String url, String param, RequestMethod method) {

    return executeRequest(url, param, method, null);

  }

 

  public static IResponse executeRequest(String url, String param) {

    return executeRequest(url, param, RequestMethod.GET, null);

  }

 

  public static IResponse executeRequest(String url) {

    return executeRequest(url, null, RequestMethod.GET, null);

  }

 

  public static IResponse executeRequest(RequestParam param) {

    return executeRequest(createDefaultHelper(), param);

  }

 

  private static IResponse executeRequest(IHttpHelper httpHelper, RequestParam param) {

    if (param.getParam() != null && param.getParam() instanceof String) {

      return executeRequest(httpHelper, param.getUrl(), (String) param.getParam(),

          param.getMethod(), param.getHeaders());

    } else {

      return httpHelper.executeRequest(param);

    }

  }

 

  public static IResponse[] executeRequest(RequestParam[] params) {

    if (params != null && params.length > 0) {

      IHttpHelper httpHelper = createDefaultHelper();

      IResponse[] responseArray = new IResponse[params.length];

      for (int i = 0; i < params.length; i++) {

        responseArray[i] = executeRequest(httpHelper, params[i]);

      }

      return responseArray;

    }

    return null;

  }

 

  public static List<IResponse> executeRequest(List<RequestParam> params) {

    if (params != null && params.size() > 0) {

      IHttpHelper httpHelper = createDefaultHelper();

      ArrayList<IResponse> list = new ArrayList<IResponse>();

      for (int i = 0; i < params.size(); i++) {

        list.add(executeRequest(httpHelper, params.get(i)));

      }

      return list;

    }

    return null;

  }

 

  public static String executeRequestForText(String url, String param, RequestMethod method,

      Map<String, String> headers) {

    IResponse response = executeRequest(url, param, method, headers);

    return response.parseAsString();

  }

 

  public static String executeRequestForText(String url, String param, RequestMethod method) {

    return executeRequestForText(url, param, method, null);

  }

 

  public static String executeRequestForText(String url, String param) {

    return executeRequestForText(url, param, RequestMethod.GET, null);

  }

 

  public static String executeRequestForText(String url) {

    return executeRequestForText(url, null, RequestMethod.GET, null);

  }

 

  public static String executeRequestForText(RequestParam param) {

    return createDefaultHelper().executeRequest(param).parseAsString();

  }

 

  private static OkHttpHelper createOkHttpHelper() {

    return new OkHttpHelper();

  }

 

  public static IHttpHelper createDefaultHelper() {

    return createOkHttpHelper();

  }

 

  private static JSONObject safeParseAsJson(String jsonStr) {

    try {

      Object obj = JSON.parseObject(jsonStr);

      if (obj != null && obj instanceof JSONObject) {

        return (JSONObject) obj;

      }

    } catch (Exception e) {

      // e.printStackTrace();

    }

    return null;

  }

 

}

 

 

 

 

 

public interface IHttpHelper {

 

  IResponse executeRequest(RequestParam param);

 

  enum RequestMethod {

    GET, POST, PUT, DELETE

  }

 

  interface IResponse {

 

    int status();

 

    String message();

 

    boolean isSuccessful();

 

    long costTime();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值