这工具类是半个月前在网上找的放上来以后可能会用得上,忘了原文链接了,总之感谢大佬

源码

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请求工具类相关推荐

  1. JAVA——Okhttp封装工具类

    基本概念 OKhttp:一个处理网络请求的开源项目,是安卓端最火热的轻量级框架. Maven <!--OK HTTP Client--><dependency><grou ...

  2. 仿京东APP分类页面(mvp模式+OkHttp封装工具类+拦截器+弱引用回收)

    仿京东APP分类页面: 添加依赖 compile 'com.android.support:recyclerview-v7:24.0.0' compile 'com.google.code.gson: ...

  3. C#实现的UDP收发请求工具类实例

    本文实例讲述了C#实现的UDP收发请求工具类.分享给大家供大家参考,具体如下: 初始化: ListeningPort = int.Parse(ConfigurationManager.AppSetti ...

  4. 【Java】HTTP请求工具类

    前言 在工作中可能存在要去调用其他项目的接口,这篇文章我们实现在Java代码中实现调用其他项目的接口. 本章内容: 创建一个携带参数的POST请求,去请求其他项目的接口并返回数据. 附加HTTP请求工 ...

  5. HTTP POST 请求工具类

    HTTP/HTTPS POST 请求工具类 Maven pom.xml 引入依赖 <dependency><groupId>org.apache.httpcomponents& ...

  6. 【Http请求工具类】

    Http请求工具类(待优化) 添加相关依赖 <!-- 发送http请求依赖 --><dependency><groupId>commons-io</group ...

  7. http和https请求工具类

    https请求 @Slf4j public class HttpPostUtils {public static int RESPONSE_STATUS_OK = 0;public static JS ...

  8. Java 常用HTTP请求工具类HttpUtils

    .pom依赖 <!-- httpclient --><dependency><groupId>org.apache.httpcomponents</group ...

  9. .NET WebApi调用微信接口Https请求工具类

    .NET WebApi调用微信接口Https请求工具类 using System; using System.Collections.Generic; using System.IO; using S ...

最新文章

  1. linux 用户态与内核态通信方式简介
  2. python有趣代码-盘点10个一行强大的、有趣的Python源代码
  3. C#多线程中lock的用法
  4. 事件控制块的清空与状态查询
  5. 【Linux系统编程】 文件描述符的复制:dup()和dup2()
  6. xp文件夹怎么设置密码?压缩文件及Office文件加密方法
  7. mysql定期删除数据_mysql数据库如何实现定期删除数据库一些东西
  8. Android dumpsys命令详细使用
  9. 我的程序员偶像在哪里?
  10. 云熙板式家具参数化拆单软件免锁版_数控开料机拆单软件如何选择?
  11. 三星on 7刷android7,三星On7(G6100)安卓8.0版官方固件rom刷机包
  12. 项目沟通管理 试题分析
  13. 第十周项目2——二叉树的便利的递归算法
  14. 机器学习中常见知识点总结
  15. 当欧洲开始通过页游对抗假新闻,中国何时起步媒介素养培育?
  16. 基于15单片机通过ESP8266实现远程浇花系统(支持天猫精灵和小爱同学)
  17. Linux 根文件系统的制作(busybox)
  18. 如何查看网站的访问量?查看访问量的二个主要方法【站长之家的SEO综合查询工具】
  19. 硬盘连接电脑提示要格式化怎么办?
  20. Windows批处理 - 小程序大作用

热门文章

  1. 【Java】Java根据时间计算是否为上午、中午、下午以及根据日期获得星期几
  2. 介绍简易制作飞行模拟游戏的方法(转)
  3. 微信小程序实现气泡弹出框
  4. 12周。。。刑警成绩
  5. kaggle 泰坦尼克号生存预测——六种算法模型实现与比较
  6. 解决windows10和ubuntu双系统切换时Windows时间不对的问题
  7. 暴风影音2014笔试算法题汇总
  8. 01 HTML、HTTP协议
  9. 【实战】本机用docker搭建elk环境并接入frostmourne,实现监控报警效果
  10. 自然语言处理中的Attention机制总结