Okhttp请求工具类
生活随笔
收集整理的這篇文章主要介紹了
Okhttp请求工具类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這工具類是半個月前在網上找的放上來以后可能會用得上,忘了原文鏈接了,總之感謝大佬
源碼
package com.test.cn.entity;import okhttp3.*; import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory;import java.util.Iterator; import java.util.Map;/*** 每一次都是創建一個新的OkHttpClient** @author YZH*/ @SuppressWarnings("All") public class OkHttpUtil {private static final Logger logger = LoggerFactory.getLogger(OkHttpUtil.class);/*** get** @param url 請求的url* @param queries 請求的參數,在瀏覽器?后面的數據,沒有可以傳null* @return 結果*/public static String get(String url, Map<String, String> queries) {String responseBody = "";StringBuffer sb = new StringBuffer(url);if (queries != null && queries.keySet().size() > 0) {boolean firstFlag = true;Iterator iterator = queries.entrySet().iterator();while (iterator.hasNext()) {Map.Entry entry = (Map.Entry<String, String>) iterator.next();if (firstFlag) {sb.append("?" + entry.getKey() + "=" + entry.getValue());firstFlag = false;} else {sb.append("&" + entry.getKey() + "=" + entry.getValue());}}}Request request = new Request.Builder().url(sb.toString()).build();Response response = null;try {OkHttpClient okHttpClient = new OkHttpClient();response = okHttpClient.newCall(request).execute();int status = response.code();if (response.isSuccessful()) {return response.body().string();}} catch (Exception e) {logger.error("okhttp3 put error >> ex = {}", ExceptionUtils.getStackTrace(e));} finally {if (response != null) {response.close();}}return responseBody;}/*** post** @param url 請求的url* @param params post form 提交的參數* @return*/public static String post(String url, Map<String, String> params) {String responseBody = "";FormBody.Builder builder = new FormBody.Builder();//添加參數if (params != null && params.keySet().size() > 0) {for (String key : params.keySet()) {builder.add(key, params.get(key));}}Request request = new Request.Builder().url(url).post(builder.build()).build();Response response = null;try {OkHttpClient okHttpClient = new OkHttpClient();response = okHttpClient.newCall(request).execute();int status = response.code();if (response.isSuccessful()) {return response.body().string();}} catch (Exception e) {logger.error("okhttp3 post error >> ex = {}", ExceptionUtils.getStackTrace(e));} finally {if (response != null) {response.close();}}return responseBody;}/*** get** @param url 請求的url* @param queries 請求的參數,在瀏覽器?后面的數據,沒有可以傳null* @return*/public static String getForHeader(String url, Map<String, String> queries) {String responseBody = "";StringBuffer sb = new StringBuffer(url);if (queries != null && queries.keySet().size() > 0) {boolean firstFlag = true;Iterator iterator = queries.entrySet().iterator();while (iterator.hasNext()) {Map.Entry entry = (Map.Entry<String, String>) iterator.next();if (firstFlag) {sb.append("?" + entry.getKey() + "=" + entry.getValue());firstFlag = false;} else {sb.append("&" + entry.getKey() + "=" + entry.getValue());}}}Request request = new Request.Builder().addHeader("key", "cellValue").url(sb.toString()).build();Response response = null;try {OkHttpClient okHttpClient = new OkHttpClient();response = okHttpClient.newCall(request).execute();int status = response.code();if (response.isSuccessful()) {return response.body().string();}} catch (Exception e) {logger.error("okhttp3 put error >> ex = {}", ExceptionUtils.getStackTrace(e));} finally {if (response != null) {response.close();}}return responseBody;}/*** Post請求發送JSON數據....{"name":"zhangsan","pwd":"123456"}* 參數一:請求Url* 參數二:請求的JSON* 參數三:請求回調*/public static String postJsonParams(String url, String jsonParams) {String responseBody = "";RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), jsonParams);Request request = new Request.Builder().url(url).post(requestBody).build();Response response = null;try {OkHttpClient okHttpClient = new OkHttpClient();response = okHttpClient.newCall(request).execute();int status = response.code();if (response.isSuccessful()) {return response.body().string();}} catch (Exception e) {logger.error("okhttp3 post error >> ex = {}", ExceptionUtils.getStackTrace(e));} finally {if (response != null) {response.close();}}return responseBody;}/*** Post請求發送xml數據....* 參數一:請求Url* 參數二:請求的xmlString* 參數三:請求回調*/public static String postXmlParams(String url, String xml) {String responseBody = "";RequestBody requestBody = RequestBody.create(MediaType.parse("application/xml; charset=utf-8"), xml);Request request = new Request.Builder().url(url).post(requestBody).build();Response response = null;try {OkHttpClient okHttpClient = new OkHttpClient();response = okHttpClient.newCall(request).execute();int status = response.code();if (response.isSuccessful()) {return response.body().string();}} catch (Exception e) {logger.error("okhttp3 post error >> ex = {}", ExceptionUtils.getStackTrace(e));} finally {if (response != null) {response.close();}}return responseBody;} }maven依賴
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><!--spring boot 自帶版本--><version>3.7</version></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.10.0</version></dependency>總結
以上是生活随笔為你收集整理的Okhttp请求工具类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2024-01-17:lc的30. 串联
- 下一篇: Linux提升系统安全性:历史命令 HI