http请求工具类

Java http请求工具类大全(HttpURLConnection、Apache HttpClient、OkHttp、RestTemplate和WebClient五种方式,2万+保姆级教程) 本文提供了一个完整的HTTP请求工具类实现,涵盖了五种常见的HTTP请求方式:HttpURLConnection、Apache HttpClient、OkHttp、RestTemplate和WebClient。每个工具类都包含了详细的请求方法实现和注释,支持GET、POST、PUT、DELETE等常用HTTP方法,并提供了同步请求功能,支持设置请求头和请求参数。以HttpURLConnection工具类为例,详细展示了如何通过Java原生API发送GET和POST请求,包括创建URL对象、设置请求方法、添加 阅读详情
  /**
     * 向指定 URL 发送GET方法的请求
     *
     * @param url 发送请求的 URL
     * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
     * @return 所代表远程资源的响应结果
     */
    public static String sendGet(String url, String param)
    {
        StringBuilder result = new StringBuilder();
        BufferedReader in = null;
        try
        {
            String urlNameString = url + "?" + param;
            
            URL realUrl = new URL(urlNameString);
            URLConnection connection = realUrl.openConnection();
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            connection.connect();
            in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            while ((line = in.readLine()) != null)
            {
                result.append(line);
            }
          
        }
        
        catch (Exception e)
        {
           System.out.println("调用HttpsUtil.sendGet Exception ");
        }
        finally
        {
            try
            {
                if (in != null)
                {
                    in.close();
                }
            }
            catch (Exception ex)
            {
            	System.out.println("调用in.close Exception");
            }
        }
        return result.toString();
    }
/**
	 * 发送post请求
	 * 
	 * @param url        路径
	 * @param jsonObject 参数(json类型)
	 * @return
	 * @throws ParseException
	 * @throws IOException
	 */
	public static JSONObject sendPostJson(String url, JSONObject jsonObject)
			throws ParseException, IOException {
		String body = "";
		// 创建httpclient对象
		CloseableHttpClient client = HttpClients.createDefault();
		// 创建post方式请求对象
		HttpPost httpPost = new HttpPost(url);

		// 装填参数
		StringEntity s = new StringEntity(jsonObject.toString(), "utf-8");
		s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
		// 设置参数到请求对象中
		httpPost.setEntity(s);
		System.out.println("请求地址:" + url);


		// 设置header信息
		// 指定报文头【Content-type】、【User-Agent】
		httpPost.setHeader("Content-type", "application/json");
		httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

		// 执行请求操作,并拿到结果(同步阻塞)
		CloseableHttpResponse response = client.execute(httpPost);
		// 获取结果实体
		HttpEntity entity = response.getEntity();
		if (entity != null) {
			// 按指定编码转换结果实体为String类型
			body = EntityUtils.toString(entity, "UTF-8");
		}
		EntityUtils.consume(entity);
		// 释放链接
		response.close();
		JSONObject userMsgObject = JSONObject.parseObject(body);
		return userMsgObject;
	}

/**
	 * 向指定 URL 发送POST方法的请求
	 * 
	 * @param url   发送请求的 URL
	 * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
	 * @return 所代表远程资源的响应结果
	 */
	public static String sendPost(String url, String param) {
		PrintWriter out = null;
		BufferedReader in = null;
		String result = "";
		try {
			URL realUrl = new URL(url);
			// 打开和URL之间的连接
			URLConnection conn = realUrl.openConnection();
			// 设置通用的请求属性
			conn.setRequestProperty("accept", "*/*");
			conn.setRequestProperty("connection", "Keep-Alive");
			conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
			// 发送POST请求必须设置如下两行
			conn.setDoOutput(true);
			conn.setDoInput(true);
			// 获取URLConnection对象对应的输出流
			out = new PrintWriter(conn.getOutputStream());
			// 发送请求参数
			out.print(param);
			// flush输出流的缓冲
			out.flush();
			// 定义BufferedReader输入流来读取URL的响应
			in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
			String line;
			while ((line = in.readLine()) != null) {
				result += line;
			}
		} catch (Exception e) {
			System.out.println("发送 POST 请求出现异常!" + e);
			e.printStackTrace();
		}
		// 使用finally块来关闭输出流、输入流
		finally {
			try {
				if (out != null) {
					out.close();
				}
				if (in != null) {
					in.close();
				}
			} catch (IOException ex) {
				ex.printStackTrace();
			}
		}
		return result;
	}

 /**
     * 发送post请求
     *
     * @param url        路径
     * @param json       参数(json类型)
     * @return
     * @throws ParseException
     * @throws IOException
     */
    public static String sendPostJson(String url, String json) {
        String body = "";
        try {
        	// 创建httpclient对象
            CloseableHttpClient client = HttpClients.createDefault();
            // 创建post方式请求对象
            HttpPost httpPost = new HttpPost(url);
            log.info("请求的参数是{}",url + "?" + json);
            // 装填参数
            StringEntity s = new StringEntity(json, "utf-8");

            s.setContentEncoding("UTF-8");

            // 设置header信息
            httpPost.setHeader("Content-type", "application/json");
            // 设置参数到请求对象中
            httpPost.setEntity(s);
            // 执行请求操作,并拿到结果(同步阻塞)
            CloseableHttpResponse response = client.execute(httpPost);
            // 获取结果实体
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                // 按指定编码转换结果实体为String类型
                body = EntityUtils.toString(entity, "UTF-8");
            }
            EntityUtils.consume(entity);
            // 释放链接
            response.close();
		} catch (ConnectException e) {
            log.error("调用HttpUtils.sendPostJson ConnectException, url=" + url + ",param=" + json, e);
        } catch(IOException e) {
        	log.error("调用HttpUtils.sendPostJson IOException, url=" + url + ",param=" + json, e);
		} catch(Exception e) {
			log.error("调用HttpUtils.sendPostJson Exception, url=" + url + ",param=" + json, e);
		}

        log.info("sendPost返回结果 - {}", body);
        return body;
    }

http get post 请求接口工具类 post,get方式请求接口封装,参数加密方式请求,参数RSA签名, 转换字符集到utf8,base64编码字符串 立即下载

相关推荐

【吐血整理-历时两个月,长达万字】FDTD Solutions学习笔记

原教学视频来自于Ansys-Lumerical官方的FDTD100,所看视频来自B站大佬UP主 【Nestor_呐等】 的幸苦翻译,本文内容粘贴自我个人在学习FDTD100时,通过字幕和一些个人理解总结的一份word。整理不易,强烈建议收藏!...

weixin_45719141的博客 10万+

JAVA http请求工具类

指定请求头自定义Cookie(cookie方法)指定是否keepAlive(keepAlive方法)指定表单内容(form方法)指定请求内容,比如rest请求指定JSON请求体(body方法)超时设置(timeout方法)指定代理(setProxy方法)指定SSL协议(setSSLProtocol)简单验证(basicAuth方法)很多时间受限于项目,开发环境,还是必须自己封装http,下边就这几贴代码了/**

拾一二的博客 3万+

遥感生态指数(RSEI)——四个指数的计算

遥感生态指数是在4个生态指数的基础上通过主成分变换得出的一个评价生态环境质量的指标。因此,第二部分就是要分别计算出这4个指数的值。 ①首先,是绿度指数的计算,一般用归一化植被指数(NDVI) NDVI=(NIR-Red)/(NIR+Red) 在Bandmath工具中输入NDVI计算公式 (float(b4-b3))/(b4+b3) 其中,b3、b4分别是红波段和近红外波段 ②其次,是湿度计算。 WET = c1B1 + c2B2 + c3B3...

qq_41978498的博客 9万+

【Java】HTTP请求工具类

在工作中可能存在要去调用其他项目的接口,这篇文章我们实现在Java代码中实现调用其他项目的接口。创建一个携带参数的POST请求,去请求其他项目的接口并返回数据。附加HTTP请求工具类,包含(GET、POST、无参GET、无参POST)

Syals的博客 6162

CS231n+assignment2(一)

cs231n作业二详解+代码

qq_56551150的博客 2411

【RK3588 NPU性能调优实战】多线程异步推理YOLOv5,榨干6TOPS算力

本文详细解析了如何在RK3588 NPU上通过多线程异步推理优化YOLOv5目标检测性能,实现6TOPS算力的最大化利用。通过线程池设计、流水线化帧处理及避开内存带宽瓶颈等技巧,将NPU利用率从30%提升至82%,帧率显著提高至61.2FPS。文章还提供了环境配置、代码实现及性能对比数据,助力开发者高效部署AI模型。

weixin_29034963的博客 340

HTTP请求工具类

http请求类

hangguangd的博客 502

RK3588 部署 YOLOv5s 实战:多线程加速从 16FPS 飙升到 120FPS(含性能优化)

因为RK3588包含了3个NPU核心,支持3个核心同时工作、双核合作、以及单核工作。我们可以使用线程池来加速。线程池是一种长街的并发编程模型,它用于管理和复用线程,以提高多线程程序的性能和效率。线程池通常包含以下主要组件:1、任务队列:任务队列用于存储待执行的任务。这些任务可以是函数、方法或其他需要多线程环境中执行的操作。2、线程池管理:线程池管理器负责创建、销毁和管理线程。它会监视任务队列中的任务,根据需要创建线程,执行任务,并在任务完成后将线程放回池中以供重用。

FJN110的博客 99

Http请求工具类

HttpUtil.java package com.jrbac.util; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.http.Consts; import

TinnnnnnY 6945

Open3D (C++) 点云边界提取【2025最新版】

Compute the boundary points of a point cloud.The implementation is inspired by the PCL implementation. Reference:https://pointclouds.org/documentation/classpcl_1_1_boundary_estimation.html

点云侠的博客 871

如何成为一名高级数字 IC 设计工程师(6-7)数字 IC 验证篇:DEBUG 技巧

不懂验证的设计不是好的设计;UVM 验证思维是指导缜密的芯片设计的导师;推荐书籍《芯片验证漫游指南》。

新芯设计的博客 1605

java http请求工具类

1.下载maven包<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>h...

qq_32403351的博客 3279

Jetson Nano之CSI摄像头操作方法

jetson端csi摄像头的应用方法

ZONGXP的博客 1万+

Java工具类——Http请求工具类

package com.runan.utils; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.ne...

RobinsStruggle的博客 3299

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Http请求-hutool工具类的使用

工具类的使用

三横同学的博客 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Python HTTP 请求工具类 HttpUtils:简化 HTTP 请求的高效工具

这篇 优快云 博客聚焦 Python 的 HttpUtils 工具类。开篇点明在多领域开发中,高效 HTTP 请求处理至关重要,引出工具类。核心内容详述其功能:基础请求方法含 GET、POST 等,各附实例,如天气查询、电商操作;还有智能适配的 send_request 方法。示例实战涵盖数据、Web 后端场景,展示用法。结尾总结工具类提效、降复杂度优势,鼓励开发者运用并交流,助其畅游 HTTP 请求世界。

Fink-Go小码的博客 2095

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

HTTP请求工具类,支持https

前言 有时候后台需要请求其他的API来获取数据,springboot可以使用RestTemplate,但是在工具类里使用就有点麻烦了。所以就自定义一个http请求的工具类,来处理GET、POST、PUT、DELETE等请求。 一、自定义工具类 import java.io.UnsupportedEncodingException; import java.net.URLEncoder; ...

小哥哥的博客 1395

【无标题】java http 请求工具类整理

看了公司同事用的这个工具类,感觉很好用,自己整理记录下,下次就不用找了。这里使用java进行http的get post请求,@RequestBody接收的请求方法

qq_27700991的博客 1647

标准Http请求工具类,拿去就用,别整那些花里胡哨的

package com.wxy.common.http; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache...

Lonely丶龙城的博客 3094

Http发送请求工具类

Http发送请求工具类 package com.risen.wechat.unit; import com.risen.hp.fastjson.JSONObject; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintW...

qq_36778310的博客 397

分享一个http请求工具类,超好用。

文章目录一,代码片二,maven依赖三,最后 一,代码片 分享一个http请求的工具类,超好用,废话不多说,直接上代码: import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; import org.apache..

大团猿的博客 1653

Http请求接口工具类

package com.cic.interfacemodule.util; import cn.hutool.http.HttpRequest; import sun.net.www.protocol.http.HttpURLConnection; import java.io.*; import java.net.InetSocketAddress; import java.net.Prox...

做我的猫的博客 1755

简单封装 HTTP 请求工具类

/** * 简单封装 HTTP 请求工具类 */ public static String doPost(String requestUrl, Map<String, String> params) throws Exception { // 获取连接 URL url = new URL(requestUrl); ...

weixin_34406796的博客 398
上一篇: nginx相关配置
下一篇: 数据相关工作类
只会debug
博客等级 码龄9年 69粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值