• OkHttp工具类


    <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
    <dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.2.2</version>
    </dependency>


    package dhht.seal.hn.gate.util;

    import okhttp3.OkHttpClient;

    import java.util.concurrent.TimeUnit;

    /**
    * @author sh
    */
    public enum OkHttpClientEnum {
    INSTANCE;
    private OkHttpClient client;

    private OkHttpClientEnum() {
    client = new OkHttpClient.Builder().connectTimeout(30, TimeUnit.SECONDS)
    .writeTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS
    ).retryOnConnectionFailure(false)
    .build();
    }

    public OkHttpClient getInstance() {
    return client;
    }
    }


    package dhht.seal.hn.gate.util;

    import com.alibaba.fastjson.JSON;
    import dhht.seal.hn.gate.vo.ResultVO;
    import lombok.extern.slf4j.Slf4j;
    import okhttp3.*;

    import java.io.File;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.concurrent.TimeUnit;

    /**
    * @Author: sh
    * @Description: OkHttpUtil
    * @Date: 2020/08/28
    */
    @Slf4j
    public class OkHttpUtil {

    private static final String JSON_PRODUCES = "application/json; charset=utf-8";

    private static final String FORM_PRODUCES = "multipart/form-data; charset=utf-8";

    private static OkHttpClient client = new OkHttpClient.Builder().connectTimeout(30, TimeUnit.SECONDS)
    .writeTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS
    ).retryOnConnectionFailure(false)
    .build();

    public static String get(String url) {
    //OkHttpClient client = new OkHttpClient();
    Request request = new Request.Builder()
    .url(url)
    .build();
    Call call = OkHttpClientEnum.INSTANCE.getInstance().newCall(request);
    String result = null;
    try {
    Response response = call.execute();
    ResponseBody body = response.body();
    if (null != response) {
    result = response.body().string();
    }
    return result;
    } catch (Exception e) {
    log.error(e.getMessage());
    return result;
    } finally {
    }
    }

    @Deprecated
    public static String post(String url, String json) {
    MediaType mediaType = MediaType.parse(JSON_PRODUCES);
    //OkHttpClient client = new OkHttpClient();
    RequestBody body = RequestBody.create(mediaType, json);
    String result = null;
    Request request = new Request.Builder()
    .url(url)
    .post(body)
    .build();
    try {
    Call call = OkHttpClientEnum.INSTANCE.getInstance().newCall(request);
    Response response = call.execute();
    if (null != response) {
    result = response.body().string();
    }
    return result;
    } catch (Exception e) {
    log.error(e.getMessage());
    return result;
    } finally {
    }
    }

    @Deprecated
    public static ResultVO postWithHead(String url, String json, String apiKey, String apiVal) {
    ResultVO resultVO = null;
    try {
    MediaType mediaType = MediaType.parse(JSON_PRODUCES);
    //OkHttpClient client = new OkHttpClient();
    RequestBody body = RequestBody.create(mediaType, json);
    String result = null;
    Request request = new Request.Builder()
    .url(url).addHeader(apiKey, apiVal)
    .post(body)
    .build();
    Call call = OkHttpClientEnum.INSTANCE.getInstance().newCall(request);
    Response response = call.execute();
    if (null != response) {
    result = response.body().string();
    resultVO = JSON.parseObject(result, ResultVO.class);
    }
    return resultVO;
    } catch (Exception e) {
    log.error(e.getMessage());
    resultVO = new ResultVO(-1, e.getMessage(), null);
    return resultVO;
    } finally {
    }
    }


    public static String getWithHeader(String url, String apiKey, String apiVal) {
    String result = null;
    try {
    Request request = new Request.Builder().addHeader("Connection", "close")
    .url(url)
    .header(apiKey, apiVal)
    .build();
    Call call = OkHttpClientEnum.INSTANCE.getInstance().newCall(request);
    Response response = call.execute();
    ResponseBody body = response.body();
    if (null != body) {
    result = body.string();
    }
    return result;
    } catch (Exception e) {
    log.error(e.getMessage());
    return result;
    }
    }

    @Deprecated
    public static ResultVO pushFile(String url, List<String> pathList, Map<String, String> params, String apiKey, String apiVal) {
    ResultVO resultVO = null;
    try {
    MediaType MutilPart_Form_Data = MediaType.parse(FORM_PRODUCES);
    RequestBody bodyParams = RequestBody.create(MutilPart_Form_Data, JSON.toJSONString(params));
    MultipartBody.Builder requestBodyBuilder = new MultipartBody.Builder()
    .setType(MultipartBody.FORM);
    //.addFormDataPart("key", "", bodyParams);
    // 添加表单文件数据
    addFormDataPart(requestBodyBuilder, params);
    Iterator<String> iterator = pathList.iterator();
    while (iterator.hasNext()) {
    String path = iterator.next();
    File file = new File(path);
    requestBodyBuilder.addFormDataPart("file", file.getName(), RequestBody.create(MutilPart_Form_Data, new File(path)));
    }
    RequestBody requestBody = requestBodyBuilder.build();
    Request request = new Request.Builder()
    .url(url).addHeader(apiKey, apiVal)
    .post(requestBody)
    .build();
    Response response = OkHttpClientEnum.INSTANCE.getInstance().newCall(request).execute();
    String rs = response.body().string();
    resultVO = JSON.parseObject(rs, ResultVO.class);
    return resultVO;
    } catch (Exception e) {
    log.error(e.getMessage());
    resultVO = new ResultVO(-1, e.getMessage(), null);
    return resultVO;
    }
    }

    public static ResultVO pushOneFile(String url, String filePath, Map<String, String> params, String apiKey, String apiVal) {
    ResultVO resultVO = null;
    try {
    MediaType MutilPart_Form_Data = MediaType.parse(FORM_PRODUCES);
    RequestBody bodyParams = RequestBody.create(MutilPart_Form_Data, JSON.toJSONString(params));
    MultipartBody.Builder requestBodyBuilder = new MultipartBody.Builder()
    .setType(MultipartBody.FORM);
    //.addFormDataPart("key", "", bodyParams);
    // 添加表单文件数据
    addFormDataPart(requestBodyBuilder, params);
    File file = new File(filePath);
    requestBodyBuilder.addFormDataPart("file", file.getName(), RequestBody.create(MutilPart_Form_Data, file));
    RequestBody requestBody = requestBodyBuilder.build();
    Request request = new Request.Builder()
    .url(url).addHeader(apiKey, apiVal)
    .post(requestBody)
    .build();
    Response response = OkHttpClientEnum.INSTANCE.getInstance().newCall(request).execute();
    String rs = response.body().string();
    resultVO = JSON.parseObject(rs, ResultVO.class);
    return resultVO;
    } catch (Exception e) {
    log.error(e.getMessage());
    resultVO = new ResultVO(-1, e.getMessage(), null);
    return resultVO;
    }
    }

    private static void addFormDataPart(MultipartBody.Builder builder, Map<String, String> params) {
    if (null == params || params.size() < 1) {
    return;
    }
    Iterator<Map.Entry<String, String>> iterator = params.entrySet().iterator();
    Map.Entry<String, String> entry = null;
    while (iterator.hasNext()) {
    entry = iterator.next();
    builder.addFormDataPart(entry.getKey(), entry.getValue());
    entry = null;
    }

    }

    public static String postFace(String url, String filePath, Map<String, String> params) {
    try {
    MediaType MutilPart_Form_Data = MediaType.parse(FORM_PRODUCES);
    MultipartBody.Builder requestBodyBuilder = new MultipartBody.Builder()
    .setType(MultipartBody.FORM);
    // 添加表单文件数据
    addFormDataPart(requestBodyBuilder, params);
    File file = new File(filePath);
    requestBodyBuilder.addFormDataPart("image_file", file.getName(), RequestBody.create(MutilPart_Form_Data, file));
    RequestBody requestBody = requestBodyBuilder.build();
    Request request = new Request.Builder()
    .url(url)
    .post(requestBody)
    .build();
    Response response = OkHttpClientEnum.INSTANCE.getInstance().newCall(request).execute();
    String rs = response.body().string();
    return rs;
    } catch (Exception e) {
    log.error(e.getMessage());
    return null;
    }
    }

    public static void main(String[] args) {
    }
    }



  • 相关阅读:
    Linux下部署SSH登录时的二次身份验证环境记录(利用Google Authenticator)
    Linux下DNS简单部署(主从域名服务器)
    MySQL 读写分离方案-MySQL Proxy环境部署记录
    Linux系统本地yum源环境配置记录
    Swarm基于多主机容器网络 (overlay networks )
    Docker管理工具
    Linux下相关性能指标数据采集
    Docker网络解决方案
    Java的接口和抽象类
    Java 8 lambda表达式示例
  • 原文地址:https://www.cnblogs.com/sung1024/p/15594140.html
Copyright © 2020-2023  润新知