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请求工具类相关推荐
- JAVA——Okhttp封装工具类
基本概念 OKhttp:一个处理网络请求的开源项目,是安卓端最火热的轻量级框架. Maven <!--OK HTTP Client--><dependency><grou ...
- 仿京东APP分类页面(mvp模式+OkHttp封装工具类+拦截器+弱引用回收)
仿京东APP分类页面: 添加依赖 compile 'com.android.support:recyclerview-v7:24.0.0' compile 'com.google.code.gson: ...
- C#实现的UDP收发请求工具类实例
本文实例讲述了C#实现的UDP收发请求工具类.分享给大家供大家参考,具体如下: 初始化: ListeningPort = int.Parse(ConfigurationManager.AppSetti ...
- 【Java】HTTP请求工具类
前言 在工作中可能存在要去调用其他项目的接口,这篇文章我们实现在Java代码中实现调用其他项目的接口. 本章内容: 创建一个携带参数的POST请求,去请求其他项目的接口并返回数据. 附加HTTP请求工 ...
- HTTP POST 请求工具类
HTTP/HTTPS POST 请求工具类 Maven pom.xml 引入依赖 <dependency><groupId>org.apache.httpcomponents& ...
- 【Http请求工具类】
Http请求工具类(待优化) 添加相关依赖 <!-- 发送http请求依赖 --><dependency><groupId>commons-io</group ...
- http和https请求工具类
https请求 @Slf4j public class HttpPostUtils {public static int RESPONSE_STATUS_OK = 0;public static JS ...
- Java 常用HTTP请求工具类HttpUtils
.pom依赖 <!-- httpclient --><dependency><groupId>org.apache.httpcomponents</group ...
- .NET WebApi调用微信接口Https请求工具类
.NET WebApi调用微信接口Https请求工具类 using System; using System.Collections.Generic; using System.IO; using S ...
最新文章
- linux 用户态与内核态通信方式简介
- python有趣代码-盘点10个一行强大的、有趣的Python源代码
- C#多线程中lock的用法
- 事件控制块的清空与状态查询
- 【Linux系统编程】 文件描述符的复制:dup()和dup2()
- xp文件夹怎么设置密码?压缩文件及Office文件加密方法
- mysql定期删除数据_mysql数据库如何实现定期删除数据库一些东西
- Android dumpsys命令详细使用
- 我的程序员偶像在哪里?
- 云熙板式家具参数化拆单软件免锁版_数控开料机拆单软件如何选择?
- 三星on 7刷android7,三星On7(G6100)安卓8.0版官方固件rom刷机包
- 项目沟通管理 试题分析
- 第十周项目2——二叉树的便利的递归算法
- 机器学习中常见知识点总结
- 当欧洲开始通过页游对抗假新闻,中国何时起步媒介素养培育?
- 基于15单片机通过ESP8266实现远程浇花系统(支持天猫精灵和小爱同学)
- Linux 根文件系统的制作(busybox)
- 如何查看网站的访问量?查看访问量的二个主要方法【站长之家的SEO综合查询工具】
- 硬盘连接电脑提示要格式化怎么办?
- Windows批处理 - 小程序大作用