成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

什么是OkHttpClientUtil

什么是OkHttpClientUtil,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

酉陽土家族苗族ssl適用于網站、小程序/APP、API接口等需要進行數(shù)據傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

OkHttp 工具類

/**
 * OkHttpClient工具
 *
 * @author yuhao.wang3
 */
public abstract class OkHttpClientUtil {
    private static final Logger logger = LoggerFactory.getLogger(OkHttpClientUtil.class);

    private static OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .connectTimeout(10, TimeUnit.SECONDS)
            .writeTimeout(10, TimeUnit.SECONDS)
            .readTimeout(20, TimeUnit.SECONDS)
            .sslSocketFactory(SSLSocketClient.getSSLSocketFactory(), SSLSocketClient.getTrustManager())
            .hostnameVerifier(SSLSocketClient.getHostnameVerifier())
            .build();

    /**
     * 發(fā)起 application/json 的 post 請求
     *
     * @param url           地址
     * @param param         參數(shù)
     * @param interfaceName 接口名稱
     * @return
     * @throws Exception
     */
    public static <T> T postApplicationJson(String url, Object param, String interfaceName, Class<T> clazz) {
        // 生成requestBody
        RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8")
                , JSON.toJSONString(param));

        return post(url, interfaceName, requestBody, param, null, clazz);
    }

    /**
     * 發(fā)起 application/json 的 post 請求
     *
     * @param url           地址
     * @param param         參數(shù)
     * @param interfaceName 接口名稱
     * @return
     * @throws Exception
     */
    public static <T> T postApplicationJson(String url, Object param, Map<String, String> header, String interfaceName, Class<T> clazz) {
        // 生成requestBody
        RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8")
                , JSON.toJSONString(param));

        return post(url, interfaceName, requestBody, param, header, clazz);
    }

    /**
     * 發(fā)起 x-www-form-urlencoded 的 post 請求
     *
     * @param url           地址
     * @param param         參數(shù)
     * @param interfaceName 接口名稱
     * @return
     * @throws Exception
     */
    public static <T> T postApplicationXWwwFormUrlencoded(String url, Object param, String interfaceName, Class<T> clazz) {
        Map<String, String> paramMap = JSON.parseObject(JSON.toJSONString(param), new TypeReference<Map<String, String>>() {
        });
        // 生成requestBody
        StringBuilder content = new StringBuilder(128);
        for (Map.Entry<String, String> entry : paramMap.entrySet()) {
            content.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
        }
        if (content.length() > 0) {
            content.deleteCharAt(content.length() - 1);
        }

        RequestBody requestBody = FormBody.create(MediaType.parse("application/x-www-form-urlencoded"), content.toString());

        return post(url, interfaceName, requestBody, param, null, clazz);
    }

    /**
     * 發(fā)起post請求,不做任何簽名
     *
     * @param url           發(fā)送請求的URL
     * @param interfaceName 接口名稱
     * @param requestBody   請求體
     * @param param         參數(shù)
     */
    public static <T> T post(String url, String interfaceName, RequestBody requestBody, Object param, Map<String, String> headers, Class<T> clazz) {
        Request.Builder builder = new Request.Builder()
                //請求的url
                .url(url)
                .post(requestBody);

        if (MapUtils.isNotEmpty(headers)) {
            for (String key : headers.keySet()) {
                builder.addHeader(key, headers.get(key));
            }
        }
        Request request = builder.build();

        Response response = null;
        String result = "";
        String errorMsg = "";
        try {
            //創(chuàng)建/Call
            response = okHttpClient.newCall(request).execute();
            if (!response.isSuccessful()) {
                logger.error("訪問外部系統(tǒng)異常 {}: {}", url, response.toString());
                errorMsg = String.format("訪問外部系統(tǒng)異常:%s", response.toString());
                throw new RemoteAccessException(errorMsg);
            }
            result = response.body().string();
        } catch (RemoteAccessException e) {
            logger.warn(e.getMessage(), e);
            result = e.getMessage();
            throw e;
        } catch (Exception e) {
            logger.warn(e.getMessage(), e);
            if (Objects.isNull(response)) {
                errorMsg = String.format("訪問外部系統(tǒng)異常::%s", e.getMessage());
                throw new RemoteAccessException(errorMsg, e);
            }
            errorMsg = String.format("訪問外部系統(tǒng)異常:::%s", response.toString());
            throw new RemoteAccessException(errorMsg, e);
        } finally {
            logger.info("請求 {}  {},請求參數(shù):{}, header:{}, 返回參數(shù):{}", interfaceName, url, JSON.toJSONString(param),
                    JSON.toJSONString(headers), StringUtils.isEmpty(result) ? errorMsg : result);
        }

        return JSON.parseObject(result, clazz);
    }
}

關于什么是OkHttpClientUtil問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關知識。

文章題目:什么是OkHttpClientUtil
路徑分享:http://jinyejixie.com/article16/jjhhgg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供全網營銷推廣、App開發(fā)定制網站、ChatGPT、外貿建站、動態(tài)網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網站建設
寻乌县| 化州市| 洪雅县| 日喀则市| 攀枝花市| 曲靖市| 临漳县| 延庆县| 绍兴县| 南城县| 梅河口市| 延庆县| 临潭县| 成都市| 惠安县| 龙南县| 陇南市| 益阳市| 和林格尔县| 准格尔旗| 乳源| 聂荣县| 咸宁市| 巧家县| 宁海县| 汨罗市| 藁城市| 泰州市| 万宁市| 阿拉尔市| 正阳县| 冷水江市| 赤壁市| 宁国市| 泰顺县| 大港区| 石景山区| 宁波市| 乌兰察布市| 云和县| 诸暨市|