发送请求的工具类HttpUtils

java 基于httpclient的工具类 HttpUtils 【代码】java 基于httpclient的工具类 HttpUtils。 阅读详情
package com.yxb.common.base.util;

import com.yxb.common.base.entity.WorthResponse;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.xml.transform.Result;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Map;

public class HttpUtils {

    private static Logger logger = LoggerFactory.getLogger(HttpUtils.class);

    public static JSONObject doGetJSON(String httpUrl){
        String result = doGet(httpUrl);
        return JSONObject.fromObject(result);
    }

    public static JSONObject doPostJSON(String httpUrl,String param){
        return doPostJSON(httpUrl, null, param);
    }

    public static JSONObject doPostJSON(String httpUrl,Map<String,String> headerMap, String param){
        String result = doPost(httpUrl, headerMap, param);
        return JSONObject.fromObject(result);
    }


    public static String doGet(String httpurl) {
        HttpURLConnection connection = null;
        InputStream is = null;
        BufferedReader br = null;
        String result = null;// 返回结果字符串
        try {
            // 创建远程url连接对象
            URL url = new URL(httpurl);
            // 通过远程url连接对象打开一个连接,强转成httpURLConnection类
            connection = (HttpURLConnection) url.openConnection();
            // 设置连接方式:get
            connection.setRequestMethod("GET");
            // 设置连接主机服务器的超时时间:15000毫秒
            connection.setConnectTimeout(15000);
            // 设置读取远程返回的数据时间:60000毫秒
            connection.setReadTimeout(60000);
            // 发送请求
            connection.connect();
            // 通过connection连接,获取输入流
            if (connection.getResponseCode() == 200) {
                is = connection.getInputStream();
                // 封装输入流is,并指定字符集
                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                // 存放数据
                StringBuffer sbf = new StringBuffer();
                String temp = null;
                while ((temp = br.readLine()) != null) {
                    sbf.append(temp);
                    sbf.append("\r\n");
                }
                result = sbf.toString();
            }
        } catch (MalformedURLException e) {
            logger.error("异常信息:{}",e);
        } catch (Exception e) {
            logger.error("错误信息:{}", e);
        } finally {
            // 关闭资源
            if (null != br) {
                try {
                    br.close();
                } catch (IOException e) {
                    logger.error("错误信息:{}", e);
                }
            }
            if (null != is) {
                try {
                    is.close();
                } catch (IOException e) {
                    logger.error("错误信息:{}", e);
                }
            }
            connection.disconnect();// 关闭远程连接
        }
        return result;
    }

    public static String doPost(String httpUrl, String param){
        return doPost(httpUrl, null, param);
    }

    public static String doPost(String httpUrl, Map<String,String> headerMap, String param) {
        HttpURLConnection connection = null;
        InputStream is = null;
        OutputStream os = null;
        BufferedReader br = null;
        String result = null;
        try {
            URL url = new URL(httpUrl);
            // 通过远程url连接对象打开连接
            connection = (HttpURLConnection) url.openConnection();
            // 设置连接请求方式
            connection.setRequestMethod("POST");
            // 设置连接主机服务器超时时间:15000毫秒
            connection.setConnectTimeout(15000);
            // 设置读取主机服务器返回数据超时时间:60000毫秒
            connection.setReadTimeout(60000);
            // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
            connection.setDoOutput(true);
            // 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
            connection.setDoInput(true);
            // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            if(headerMap != null && headerMap.size() > 0){
                for(String key:headerMap.keySet()){
                    connection.setRequestProperty(key, headerMap.get(key));
                }
            }
            // 通过连接对象获取一个输出流
            os = connection.getOutputStream();
            // 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
            os.write(param.getBytes());
            // 通过连接对象获取一个输入流,向远程读取
            if (connection.getResponseCode() == 200) {
                is = connection.getInputStream();
                // 对输入流对象进行包装:charset根据工作项目组的要求来设置
                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));

                StringBuffer sbf = new StringBuffer();
                String temp = null;
                // 循环遍历一行一行读取数据
                while ((temp = br.readLine()) != null) {
                    sbf.append(temp);
                    sbf.append("\r\n");
                }
                result = sbf.toString();
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭资源
            if (null != br) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (null != os) {
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (null != is) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            // 断开与远程地址url的连接
            connection.disconnect();
        }
        return result;
    }

    public static WorthResponse doPost(String httpUrl, String param,String... contentType) {
        HttpURLConnection connection = null;
        InputStream is = null;
        OutputStream os = null;
        BufferedReader br = null;
        String result = null;
        WorthResponse worthResponse = null;
        StringBuilder sb = new StringBuilder();
        try {
            URL url = new URL(httpUrl);
            // 通过远程url连接对象打开连接
            connection = (HttpURLConnection) url.openConnection();
            // 设置连接请求方式
            connection.setRequestMethod("POST");
            // 设置连接主机服务器超时时间:15000毫秒
            connection.setConnectTimeout(30000);
            // 设置读取主机服务器返回数据超时时间:60000毫秒
            connection.setReadTimeout(60000);

            // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
            connection.setDoOutput(true);
            // 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
            connection.setDoInput(true);
            // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
//            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            connection.setRequestProperty("Content-Type", contentType.length< 1 ? "application/x-www-form-urlencoded" : contentType[0]);
            // 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
            connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
            // 通过连接对象获取一个输出流
            os = connection.getOutputStream();
            // 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
            os.write(param.getBytes());

            //根据responseCode来获取输入流,此处错误响应码的响应体内容也要获取(看服务端的返回结果形式决定)
            if (HttpURLConnection.HTTP_OK == connection.getResponseCode()) {
                is = connection.getInputStream();
            } else {
                is = connection.getErrorStream();
            }

            br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
            String line = null;
            while ((line = br.readLine()) != null) {
                sb.append(line);
                sb.append("\r\n");
            }
            br.close();

            worthResponse = new WorthResponse();
            worthResponse.setCode(connection.getResponseCode());
            worthResponse.setContentType(connection.getContentType());
            worthResponse.setResult(sb.toString());
        } catch (MalformedURLException e) {
            e.printStackTrace();
            logger.error("错误信息:{}", e);
        } catch (IOException e) {
            e.printStackTrace();
            logger.error("错误信息:{}", e);
        }finally {
            // 关闭资源
            if (null != br) {
                try {
                    br.close();
                } catch (IOException e) {
                    logger.error("错误信息:{}", e);
                }
            }
            if (null != os) {
                try {
                    os.close();
                } catch (IOException e) {
                    logger.error("错误信息:{}", e);
                }
            }
            if (null != is) {
                try {
                    is.close();
                } catch (IOException e) {
                    logger.error("错误信息:{}", e);
                }
            }
            // 断开与远程地址url的连接
            connection.disconnect();
        }
        return worthResponse;
    }

}

HttpUtils.java工具类(附注释) 此为调用http请求的java工具类,基于springframework的RestTemplate,有注释 立即下载

相关推荐

Hypermesh二次开发实战:Tcl命令分类与常用函数详解(附避坑指南)

本文深入解析Hypermesh二次开发中Tcl命令的三大核心类别:界面命令、查询命令与修改命令。重点剖析了*createmark集合管理与hm_getvalue信息查询等关键函数的实战用法,并提供了避免Mark覆盖、生命周期管理等常见陷阱的实用指南,旨在帮助CAE工程师构建高效可靠的自动化前处理流程。

weixin_29233333的博客 242

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

ldpc编解码器设计与仿真

计算校验节点到变量节点的消息 m_{c \to v}=2 \cdot atanh(\prod_{v’ \in N©\setminus v}tanh(\frac{m_{v’ \to c}}{2}))。计算变量节点到校验节点的消息 m_{v \to c}=L_{v,0}+\sum_{c’ \in M(v)\setminus c}m_{c’ \to v}。◦ 对于每个变量节点 v,计算最终 LLR 值 L_{v,f}=L_{v,0}+\sum_{c \in M(v)}m_{c \to v}。

youngerwang的博客 811

HttpUtils发送工具类。

1.引入jar包 &lt;dependency&gt; &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt; &lt;artifactId&gt;httpclient&lt;/artifactId&gt; &lt;/dependency&gt;           版本的话  会根据boot自动导入的似乎  ss...

诗礼银杏的博客 811

RK3588与银河麒麟V10 SP1 2403深度适配:国产化硬件与操作系统的完美融合

本文深入探讨了RK3588处理器与银河麒麟V10 SP1 2403操作系统的深度适配,展示了国产化硬件与操作系统的完美融合。通过性能验证和实际应用测试,证明了这套组合在多媒体处理、AI推理和日常办公中的卓越表现,实现了完全自主可控的计算平台。

weixin_29194255的博客 251

C# .NET6 TesseractOCR 图片文字识别

在你的项目中的tessdata-main文件夹找到这几个文件,并右键->属性设置为【如果较新则复制】有几个需要用到的模型,需要生成的时候复制到输出目录中,在项目中设置即可。TesseractOCR兼容 x86 与 x64。附 :ImageUtils.RegionCropping()源码。Visual Studio 2022 社区版。下载完成后解压在你的项目中,如图所示。从官方项目中获取模型数据, 网址为。

qq_44121554的博客 3855

java网络请求工具类(HttpUtils/HttpClientUtils)

Java网络请求工具类(HttpUtils/HttpClientUtils)是用来简化与服务器进行网络请求的过程。它是基于HttpClient库开发的。该工具类提供了一系列方法,可以方便地发送HTTP请求(GET、POST等)。它可以帮助我们完成以下操作:发送GET请求:通过传入URL和参数,发送GET请求并获取服务器返回的数据。发送POST请求:通过传入URL、参数和请求体,发送POST请求并获取服务器返回的数据。设置请求头:可以设置请求头,如User-Agent、Cookie等。

Flying_Fish_roe的博客 3027

【ESD专题】从原理上分析TVS管PCB Layout的经验法则

我们常常会听到的一些经验法则,按这些经验法则去做,一般也不会有什么问题,但是到底是为什么呢? 没有从原理上分析和证明的时候,往往在Layout之后还要担心实际测试结果怎么样。或是在实际测试出问题后,根本无法进行分析,难道说修改一个版本就好了?那要从哪里修改呢?也无从下手呀。...

一点硬件 1448

HttpUtils工具类(一)常见的HttpUtils工具类及如何自定义java的http连接池

一、几种常见的Http调用方式一、几种常见的Http调用方式OKhttp是一个功能强大的 HTTP 客户端库,支持同步和异步请求。它适用于处理更加复杂的场景,如认证、连接池、多线程、上传文件等。

m0_52767002的博客 2749

40、基于指令的GPU编程:OpenACC与OpenMP的深入解析

本文深入解析了两种基于指令的GPU编程模型——OpenACC和OpenMP。从编程复杂度、数据处理方式和性能表现等多个方面对两者进行了对比分析,并结合实际应用场景提供了选择建议。通过详细的代码示例和性能测试结果,帮助开发者更好地理解和应用这两种编程模型,以充分发挥GPU的并行计算能力。

q5r6s7的博客 137

【SigmaStudio】自定义算法组件之源码规范(二)

工作中自定义算法组件一般是dll文件,生成dll文件需要XML文件和DLB文件,记录一下DLB文件代码的编码规范,定义SigmaStudio SHARC算法开发的编码规则,涵盖函数原型、内存管理、接口结构体等关键要求,确保算法模块与SigmaStudio环境兼容

liang_song的博客 1378

java httputils工具类_Java工具类HttpUtil

importorg.apache.http.Header;importorg.apache.http.HttpEntity;importorg.apache.http.NameValuePair;importorg.apache.http.client.entity.UrlEncodedFormEntity;importorg.apache.http.client.methods.Closeabl...

weixin_42395462的博客 965

MIPI D-PHY的校准测试

MIPI的校准测试困扰了很久,今天终于得以解决!

一只豌豆象的博客 3924

SpringBoot 整合 httpclient http请求发送工具类HttpUtils

SpringBoot 整合 httpclient http请求发送工具类HttpUtils 导入依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.12</version> </dependency> <dependenc

NeverGiveUp 5278

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

超好用的后端发送http请求HttpUtils工具类(基于原生http连接,不需要另外导包)

在项目中,为了实现一些特定的功能,我们常常需要发送http异步请求 ,为此需要特意封装一个实用的HttpUtils工具类 HttpUtils工具类内容如下: package com.zyw.seckill.utils; import java.io.*; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Map; /** * @Author Mr.zhou * @.

zyw_hello的博客 2086

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java调用http的工具类_HttpUtils 发送http请求工具类(实例讲解)

废话不多说,直接上代码import java.io.ioexception;import java.io.unsupportedencodingexception;import java.net.urisyntaxexception;import java.util.arraylist;import java.util.map;import org.apache.commons.logging.l...

weixin_30499067的博客 926

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

HttpUtils——助力高效网络通信

HttpUtils——助力高效网络通信使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可:登录后复制 1、创建HttpClient对象。 2、创建请求方法的实例,并指定请求URL。如果需要发送GET请求, 创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。 3、如果需要发送请...

weixin_40372737的博客 251

Httputils请求工具类

import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.http.Consts; import org.apache.http.HttpEntity; import org.apache.http.NameValue...

sleepyhead1994的博客 577

HttpUtil工具类发送post请求

import java.io.IOException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpP...

weixin_41233524的博客 7656

HttpUtils工具类

HttpUtils工具类 HttpUtils工具类 package net.hs.itn.teng.common.util; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import j...

w1366352655的博客 2433

java后端发送请求并返回请求结果(纯干货分享)

在很多时候,例如调用别人的api的时候,不是通过前端调用,而是需要后端将接口调用的api和返回信息封装好后才返回给前端,这时需要通过后端去直接发送http请求,所以可以创建一个工具类来将post,get,put,delete请求直接封装好,通过调用工具类里的静态方法从而直接发送http请求。今天介绍的HttpUtils是具备发送更加简单,返回更加清楚,调用更加便捷的工具整合类,可以解决大部分后端发送Http请求问题。...

X1nZz的博客 2346

HttpUtils 工具类

【代码】HttpUtils 工具类。

qq_35004315的博客 588

Java HttpUtils工具类

Java HttpUtils工具类

weixin_47315082的博客 517

java 通过发送json,post请求,返回json数据

1.工具类 import java.io.*; import java.net.HttpURLConnection; import java.net.URL; public class HttpUtils { public static String sendPost(String param,String urls){ StringBuffer sb=new...

hello world 1353
上一篇: 加密工具类MD5Util
下一篇: HttpURLConnection与HttpClient浅析
hit、run
博客等级 码龄10年 163粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值