引入okhttp3的依赖

<dependencies><!--ok3http--><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.10.0</version></dependency>
</dependencies>

工具类

package com.ymx.platform.common.util;
import okhttp3.*;
import okhttp3.Request.Builder;
import org.springframework.util.CollectionUtils;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.Map;/*** @Auther: jiang* @Date: 2022/10/20 15:56* @Description:ok3http工具类*/
public class OkHttpClientUtil {private final static OkHttpClient okHttpClient = new OkHttpClient();/*** get请求** @param url* @param headerMap* @return* @throws Exception*/public static String get(String url, Map<String, String> headerMap) throws Exception {Builder builder = new Request.Builder().url(url);if (!CollectionUtils.isEmpty(headerMap)) {headerMap.forEach((name, value) -> builder.addHeader(name, value));}Request request = builder.build();ResponseBody body = okHttpClient.newCall(request).execute().body();return body.string();}/**** @param url* @return*/public static String getResult(String url) {OkHttpClient okHttpClient = new OkHttpClient();Request request = new Request.Builder().url(url).build();Call call = okHttpClient.newCall(request);try {Response response = call.execute();String string = response.body().string();return string;} catch (IOException e) {e.printStackTrace();}return null;}/*** get 请求** @param url* @param headerMap* @return* @throws Exception*/public static String getData(String url, Map<String, String> headerMap) throws Exception {OkHttpClient okHttpClient = new OkHttpClient();Builder builder = new Request.Builder().url(url);if (!CollectionUtils.isEmpty(headerMap)) {headerMap.forEach((name, value) -> builder.addHeader(name, value));}Call call = okHttpClient.newCall(builder.build());try {Response response = call.execute();String string = response.body().string();return string;} catch (IOException e) {e.printStackTrace();}return null;}/*** post 请求*/public static String postData(String url, String json, Map<String, String> headerMap) throws Exception {RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), json);Builder builder = new Request.Builder().url(url);if (!CollectionUtils.isEmpty(headerMap)) {headerMap.forEach(builder::addHeader);}Request request = builder.post(requestBody).build();ResponseBody body = okHttpClient.newCall(request).execute().body();return resolver(body);}public static String postUrlencoded(String url, String json, Map<String, String> headerMap) throws Exception {RequestBody requestBody = RequestBody.create(MediaType.parse("application/x-www-form-urlencoded"), json);Builder builder = new Request.Builder().url(url);if (!CollectionUtils.isEmpty(headerMap)) {headerMap.forEach(builder::addHeader);}Request request = builder.post(requestBody).build();ResponseBody body = okHttpClient.newCall(request).execute().body();return resolver(body);}public static InputStream postDataByPdf(String url, String json, Map<String, String> headerMap) throws Exception {RequestBody requestBody = RequestBody.create(MediaType.parse("application/x-www-form-urlencoded"), json);Builder builder = new Request.Builder().url(url);if (!CollectionUtils.isEmpty(headerMap)) {headerMap.forEach(builder::addHeader);}Request request = builder.post(requestBody).build();ResponseBody body = okHttpClient.newCall(request).execute().body();return body.byteStream();}/*** put 请求** @param url* @param reqbody* @param map* @return*/public static String putData(String url, String reqbody, Map<String, String> map) {RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), reqbody);Builder builder = new Request.Builder().url(url);if (!CollectionUtils.isEmpty(map)) {map.forEach((name, value) -> builder.addHeader(name, value));}Request request = builder.put(requestBody).build();try {ResponseBody body = okHttpClient.newCall(request).execute().body();return resolver(body);} catch (IOException e) {e.printStackTrace();}return null;}/*** delete 请求** @param url* @param reqbody* @param map* @return*/public static String deleteData(String url, String reqbody, Map<String, String> map) {OkHttpClient okHttpClient = new OkHttpClient();Builder builder = new Request.Builder().url(url);if (!CollectionUtils.isEmpty(map)) {map.forEach((name, value) -> builder.addHeader(name, value));}Call call = okHttpClient.newCall(builder.build());try {Response response = call.execute();String string = response.body().string();return string;} catch (IOException e) {e.printStackTrace();}return null;}/*** 解析返回值** @param responseBody* @return*/private static String resolver(ResponseBody responseBody) {InputStream is = null;String result = null;try {is = responseBody.byteStream();BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));String body = null;StringBuilder sb = new StringBuilder();while ((body = br.readLine()) != null) {sb.append(body);}is.close();result = sb.toString();} catch (Exception e) {e.printStackTrace();} finally {try {if (is != null) {is.close();}} catch (Exception e) {e.printStackTrace();}}return result;}}

okhttp3发送请求相关推荐

  1. 【安卓开发】Android初级开发(okhttp3发送带header与带参数的GET请求)

    1.首先需要先加入相应依赖 dependencies{implementation 'com.squareup.okhttp3:okhttp:3.13.1' implementation 'com.s ...

  2. OkHttp3 发送网络请求服务器

    前言:应用程序需要发送网络请求服务器的接口,可使用OkHttp 3发送请求获取服务端数据 GitHut地址 Step 1:申请网络请求的权限:在manifests层的AndroidManifest.x ...

  3. OkHttp3 HTTP请求执行流程分析

    OkHttp3的基本用法 使用OkHttp3发送Http请求并获得响应的过程大体为: 创建OkHttpClient对象.OkHttpClient为网络请求执行的一个中心,它会管理连接池,缓存,Sock ...

  4. jquery发送put请求_浅谈GET,POST,PUT发送请求

    一般我们在浏览器的地址栏输入网址回车后,发送的是GET请求 当用表单提交时(最普遍的是用户登录),我们可以指定是GET还是POST请求,这里需要注意的是有的浏览器并不支持PUT请求,那后台restfu ...

  5. 爬虫之requests模块在headers参数中携带cookie发送请求

    爬虫之requests模块在headers参数中携带cookie发送请求 网站经常利用请求头中的Cookie字段来做用户访问状态的保持,那么我们可以在headers参数中添加Cookie,模拟普通用户 ...

  6. cefsharp 发送请求服务器_WEB服务器之HTTP协议

    本篇主要为为了实现WEB服务器,其中包含了HTTP协议的理解,以及TCP的三次握手.四次挥手等方面相关知识,同时还包含了关于web浏览器与服务器之间的通信过程. 一.web浏览器 通常在我们上网时会在 ...

  7. Vue 爬坑之路(六)—— 使用 Vuex + axios 发送请求

    Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource 目前主流的 Vue 项目,都选择 axios ...

  8. 提交请求最基础的3种方式以及可以发送请求的7个位置

    提交请求最基础的4种方式以及可以发送请求的7个位置 提交请求最基础的4种方式 一.可以使用jquery发送ajax请求 1.使用全ajax方式发送 请求实例var url = "/test/ ...

  9. async await异步发送请求例子

    这里进行一个简单的模拟.使用setTimeout来模拟发送请求. 我们在获取一个后端返回信息时,可以像下面getUserInfo函数一样来写. 即第一次会向后端发送请求,并保存在userInfo变量里 ...

最新文章

  1. mysql怎么用_面试官都是这样发问的,连环冲锋炮,看你怎么抵挡(上)
  2. c++11的10个新特性
  3. android自定义选年控件,Android精美日历控件CalendarView自定义使用完全解析
  4. OCP最新题库052考题解析及答案-第37题
  5. 计算机 学术论文写作,计算机辅助学术论文写作系统的研制策略与方法.pdf
  6. COCOS2D坐标系统的一些说明
  7. Atitit.javascript 实现类的方式原理大总结
  8. Linux下Vivado安装流程
  9. 小米手机 更换app图标失败的解决方法
  10. 透明背景flash html5,DW网页设计:添加透明背景的 Flash
  11. Win8.1系统System.exe进程占用磁盘率高达100%如何解决
  12. 如何快速选购腾讯云DNS解析服务?
  13. HA-reshacker
  14. footer的设置绝不只是设置footer:使html高、宽自适应和footer始终在网页最末尾
  15. 艾永亮:从小公司到行业龙头,一路披荆斩棘,最后输给了电商
  16. 解决吉特哈布原本可以访问突然访问不了的问题
  17. linux mysql dengl_交作业了!哈哈-·
  18. 数据库表去除重复数据
  19. 树莓派3B+安装wordpress
  20. distinct (去重)

热门文章

  1. 结算系统业务监控实践
  2. linux三种网络模式
  3. uml中的关系-类图关系
  4. 二值图像与灰度图像的区别
  5. 数据库设计(电商平台)
  6. Remote Execution - SaltStack远程执行模块使用指南
  7. colcon 单独编译某个功能包
  8. 8 月 “图无处不在” 线上直播开始报名啦
  9. PS-制作动态图GIF
  10. devcpp如何调试