导入依赖

 <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.10.0</version>
</dependency>

工具类

package com.ly.uitls;

import okhttp3.*;
import org.springframework.util.CollectionUtils; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Map; /**
* @author : ly
*/
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 {
Request.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();
Request.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);
Request.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);
Request.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);
Request.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);
Request.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();
Request.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发送http请求的更多相关文章

  1. 安卓中使用OkHttp发送数据请求的两种方式(同、异步的GET、POST) 示例-- Android基础

    1.首先看一下最终效果的截图,看看是不是你想要的,这个年代大家都很忙,开门见山很重要! 简要说下,点击不同按钮可以实现通过不同的方式发送OkHttp请求,并返回数据,这里请求的是网页,所以返回的都是些 ...

  2. Android 的OkHttp(发送网络请求)

    今天讲的是和HttpURLConnection差不多的OkHttp; 先把网站献上: 官网介绍okhttp的: https://square.github.io/okhttp/ 下载postman的: ...

  3. Java发送Http请求并获取状态码

    通过Java发送url请求,查看该url是否有效,这时我们可以通过获取状态码来判断. try { URL u = new URL("http://10.1.2.8:8080/fqz/page ...

  4. AngularJs的$http发送POST请求,php无法接收Post的数据解决方案

      最近在使用AngularJs+Php开发中遇到php后台无法接收到来自AngularJs的数据,在网上也有许多解决方法,却都点到即止.多番摸索后记录下解决方法:tips:当前使用的AngularJ ...

  5. Ajax发送POST请求SpringMVC页面跳转失败

    问题描述:因为使用的是SpringMVC框架,所以想使用ModelAndView进行页面跳转.思路是发送POST请求,然后controller层中直接返回相应ModelAndView,但是这种方法不可 ...

  6. 使用HttpClient来异步发送POST请求并解析GZIP回应

    .NET 4.5(C#): 使用HttpClient来异步发送POST请求并解析GZIP回应 在新的C# 5.0和.NET 4.5环境下,微软为C#加入了async/await,同时还加入新的Syst ...

  7. 在发送ajax请求时加时间戳或者随机数去除js缓存

    在发送ajax请求的时候,为了保证每次的都与服务器交互,就要传递一个参数每次都不一样,这里就用了时间戳 大家在系统开发中都可能会在js中用到ajax或者dwr,因为IE的缓存,使得我们在填入相同的值的 ...

  8. HttpUrlConnection发送url请求(后台springmvc)

    1.HttpURLConnection发送url请求 public class JavaRequest { private static final String BASE_URL = "h ...

  9. kattle 发送post请求

    一.简介 kattle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,数据抽取高效稳定.它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述 ...

  10. 【荐】怎么用PHP发送HTTP请求(POST请求、GET请求)?

    file_get_contents版本: <?php /** * 发送post请求 * @param string $url 请求地址 * @param array $post_data pos ...

随机推荐

  1. 了解API接口技术及其应用

    在当今数字化时代,API(Application Programming Interface,应用程序接口)已成为了各行各业之间数据传输和交互的关键技术.无论是电商平台.社交媒体.金融系统,还是智能设 ...

  2. 别再用 offset 和 limit 分页了,性能太差!

    不需要担心数据库性能优化问题的日子已经一去不复返了. 随着时代的进步,随着野心勃勃的企业想要变成下一个 Facebook,随着为机器学习预测收集尽可能多数据的想法的出现. 作为开发人员,我们要不断地打 ...

  3. 我们能从PEP 703中学到什么

    PEP703是未来去除GIL的计划,当然现在提案还在继续修改,但大致方向确定了. 对于实现细节我没啥兴趣多说,挑几个我比较在意的点讲讲. 尽量少依赖原子操作的引用计数 没了GIL之后会出现两个以上的线 ...

  4. T-SQL——关于数据合并(Merge)

    目录 0. 背景说明及测试数据 1. 直接清空,重新插入 2. 单条记录执行插入.更新操作 3. Merge函数 3.1 准备测试数据 3.2 测试Merge 3.3 关于Merge 4.参考 sha ...

  5. Visual Studio必备插件

    1.Rainbow Braces 2.Codist 3.ResXManager 4.XAML Styler for Visual Studio 2022 5.Viasfora 6.ZenCoding ...

  6. Denpendcy Injection 8.0新功能——KeyedService

    Denpendcy Injection 8.0新功能--KeyedService 本文只介绍 .NET Denpendcy Injection 8.0新功能--KeyedService,假定读者已熟练 ...

  7. 开源项目 | 一款基于NodeJs+Vue3的强大的在线设计图片工具

    一.项目概述 一款漂亮且功能强大的在线海报图片设计器,仿稿定设计.适用于海报图片生成.电商分享图.文章长图.视频/公众号封面等多种场景. 二. 技术特性 丝滑的操作体验,丰富的交互细节,基础功能完善 ...

  8. js仿百度搜索框

    1.js仿百度搜索框 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...

  9. Java线程安全详解

    并发与多线程 blog:https://devonmusa.github.io 1 常见概念 1.1 操作系统线程运行状态 NEW RUNNABLE RUNNING BLOCKED 1.2 Java虚 ...

  10. 【数字图像处理】Matlab实现-图像增强-灰度图像增强

    灰度图像增强的大致原理以及操作方法 面向作业编程 上图是大概对灰度图的增强处理 就是想让图片变得更好看 那么如何具体操作就看下面的代码了 这是一个简单的线性分段处理,相信在注释的帮助下应该能看懂. % ...