在项目中,为了实现一些特定的功能,我们常常需要发送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连接,不需要另外导包)相关推荐

  1. JavaSocket编写发送TCP请求的工具类

    转自:https://blog.csdn.net/jadyer/article/details/8788303 package com.jadyer.util;import java.io.ByteA ...

  2. 分享一个发送http请求的工具类

    分享一个发送http请求的工具类 maven依赖只需要导入一个 <dependencies><dependency><groupId>commons-httpcli ...

  3. Objective-c 异步发送Post请求的工具类

    原文链接iOS开发--post异步网络请求封装 有改动 HttpUtil.h #import <Foundation/Foundation.h> #import <UIKit/UIK ...

  4. 发送http请求的工具类

    大家工作中都会遇到使用http请求调用合作商接口的需求,下面分享一个封装好的http请求工具类 1.发送GET请求 /***发送GET方法的请求*/public static String sendG ...

  5. java常用的发送http请求的工具方法

    java常用的HttpURLConnection 方式发送http请求的工具方法 需要的jar包有jsp-api.jar .servlet-api.jar .dom4j.jar package cn. ...

  6. 前端请求接口post_程序员:HttpClient进行post请求的工具类,访问第三方接口HTTPS...

    HTTPS (英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure) 是一 ...

  7. Http请求-hutool工具类的使用

    Http请求-hutool工具类的使用 前言 在日常java后端开发的工作中经常会遇到后端发起HTTP请求的情况,这里可以使用一个简单的工具类. 官方网址:Http请求-HttpRequest (hu ...

  8. 【短信发送】实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现

    实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现 一.开通腾讯云短信服务 二.工具类--使用qcloudsms实现短信发送 三.Spring Boot项目引入短信发送功能 我们发 ...

  9. HttpUtils工具类 java程序 发起 网络请求

    HttpUtils工具类 用于java程序 发起 网络请求 @Slf4j public class OkHttpUtils {private static final String HTTP_JSON ...

最新文章

  1. Func与Action
  2. JSP中javaBean和Servlet理解
  3. WordPress强制跳转https教程
  4. 【Qt】数据库实战(二)
  5. [设计模式]中介者模式之Events消息传递实现
  6. 通过Dapr实现一个简单的基于.net的微服务电商系统(十八)——服务保护之多级缓存...
  7. wxpay-api:pay_J2Pay – API响应
  8. shell通过sshpass远程ssh执行命令
  9. 【Java】数据库编程
  10. 大数据系列2-liunx基础-1操作系统介绍
  11. 如何使用MongoDB+Springboot实现分布式ID?
  12. 千万级数据表如何索引快速查找
  13. Android以太网框架情景分析之NetworkManagementService和netd交互深入分析二
  14. 如何将多个图片合成一个pdf
  15. 13 . 外部中断实验
  16. 用scratch编写游戏-数字华容道(不移动块法)
  17. 工业蒸汽_到底什么是蒸汽机,我想要一个吗?
  18. 【华人学者风采】李海洲 新加坡国立大学
  19. 盘点2013智能电网行业十大新闻事件
  20. 腾讯云轻量应用服务器内网连接互通有什么限制?

热门文章

  1. 极智AI | 多模态领域先行者 详解 CLIP 算法实现
  2. nyoj236 偏序集+dilworth定理的应用
  3. 0基础转行IT编程,Java、C++、Linux和Web前端哪种好?
  4. 苹果cms视频文字采集插件
  5. 《通信网》专题一:通信网的概念、构成与业务分类
  6. Java对象校验框架之Oval
  7. 【前端攻城狮之路】Angular篇
  8. centos7从零开始搭建php7.2+nginx+mysql5.7.21
  9. 继续吭哧吭哧写代码~组长的思维比我好很多~
  10. 基于STM32的智能循迹避障小车实验(小车运动部分)