zoukankan      html  css  js  c++  java
  • 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) {
    }
    }



  • 相关阅读:
    mysql报错:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
    MD5登陆密码的生成
    15. 3Sum、16. 3Sum Closest和18. 4Sum
    11. Container With Most Water
    8. String to Integer (atoi)
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    几种非线性激活函数介绍
    AI初探1
    AI初探
  • 原文地址:https://www.cnblogs.com/sung1024/p/15594140.html
Copyright © 2011-2022 走看看