超好用的后端发送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* @Date 2021/3/27* @Description http请求发送工具类*/
public class HttpUtils {/*** 向指定URL发送GET方法的请求** @param url 发送请求的URL* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @return URL 所代表远程资源的响应结果*/public static String doGetHttp(String url, String param) {String result = "";BufferedReader in = null;try {String urlNameString = url + "?" + param;URL realUrl = new URL(urlNameString);// 打开和URL之间的连接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();// 获取所有响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()) {System.out.println(key + "--->" + map.get(key));}// 定义 BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送GET请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输入流finally {try {if (in != null) {in.close();}} catch (Exception e2) {e2.printStackTrace();}}return result;}/*** 发送json数据post请求* @param url 请求地址* @param jsonStr 请求json格式字符串数据* @return 响应结果* @throws Exception*/public static String doPostHttp(String url, String jsonStr) throws Exception {System.out.println("发起的数据:" + jsonStr);byte[] xmlData = jsonStr.getBytes();BufferedReader in = null;String ResponseString = "";try {URL doUrl = new URL(url);URLConnection urlCon = doUrl.openConnection();urlCon.setDoOutput(true);urlCon.setDoInput(true);urlCon.setUseCaches(false);urlCon.setRequestProperty("content-Type", "application/json");urlCon.setRequestProperty("charset", "utf-8");urlCon.setRequestProperty("Content-length",String.valueOf(xmlData.length));System.out.println(String.valueOf(xmlData.length));DataOutputStream printout = new DataOutputStream(urlCon.getOutputStream());printout.write(xmlData);printout.flush();printout.close();in = new BufferedReader(new InputStreamReader(urlCon.getInputStream()));String line;while ((line = in.readLine()) != null) {ResponseString += line;}if ((ResponseString == null) || ("".equals(ResponseString.trim()))) {System.out.println("返回空");}System.out.println("返回数据为:" + ResponseString);return ResponseString;} catch (Exception e) {e.printStackTrace();return "0";} finally {try {in.close();} catch (Exception ex) {return "0";}}}
}
超好用的后端发送http请求HttpUtils工具类(基于原生http连接,不需要另外导包)相关推荐
- JavaSocket编写发送TCP请求的工具类
转自:https://blog.csdn.net/jadyer/article/details/8788303 package com.jadyer.util;import java.io.ByteA ...
- 分享一个发送http请求的工具类
分享一个发送http请求的工具类 maven依赖只需要导入一个 <dependencies><dependency><groupId>commons-httpcli ...
- Objective-c 异步发送Post请求的工具类
原文链接iOS开发--post异步网络请求封装 有改动 HttpUtil.h #import <Foundation/Foundation.h> #import <UIKit/UIK ...
- 发送http请求的工具类
大家工作中都会遇到使用http请求调用合作商接口的需求,下面分享一个封装好的http请求工具类 1.发送GET请求 /***发送GET方法的请求*/public static String sendG ...
- java常用的发送http请求的工具方法
java常用的HttpURLConnection 方式发送http请求的工具方法 需要的jar包有jsp-api.jar .servlet-api.jar .dom4j.jar package cn. ...
- 前端请求接口post_程序员:HttpClient进行post请求的工具类,访问第三方接口HTTPS...
HTTPS (英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure) 是一 ...
- Http请求-hutool工具类的使用
Http请求-hutool工具类的使用 前言 在日常java后端开发的工作中经常会遇到后端发起HTTP请求的情况,这里可以使用一个简单的工具类. 官方网址:Http请求-HttpRequest (hu ...
- 【短信发送】实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现
实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现 一.开通腾讯云短信服务 二.工具类--使用qcloudsms实现短信发送 三.Spring Boot项目引入短信发送功能 我们发 ...
- HttpUtils工具类 java程序 发起 网络请求
HttpUtils工具类 用于java程序 发起 网络请求 @Slf4j public class OkHttpUtils {private static final String HTTP_JSON ...
最新文章
- Func与Action
- JSP中javaBean和Servlet理解
- WordPress强制跳转https教程
- 【Qt】数据库实战(二)
- [设计模式]中介者模式之Events消息传递实现
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十八)——服务保护之多级缓存...
- wxpay-api:pay_J2Pay – API响应
- shell通过sshpass远程ssh执行命令
- 【Java】数据库编程
- 大数据系列2-liunx基础-1操作系统介绍
- 如何使用MongoDB+Springboot实现分布式ID?
- 千万级数据表如何索引快速查找
- Android以太网框架情景分析之NetworkManagementService和netd交互深入分析二
- 如何将多个图片合成一个pdf
- 13 . 外部中断实验
- 用scratch编写游戏-数字华容道(不移动块法)
- 工业蒸汽_到底什么是蒸汽机,我想要一个吗?
- 【华人学者风采】李海洲 新加坡国立大学
- 盘点2013智能电网行业十大新闻事件
- 腾讯云轻量应用服务器内网连接互通有什么限制?