我的编程空间,编程开发者的网络收藏夹
学习永远不晚

http请求怎么在spring boot中使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

http请求怎么在spring boot中使用

今天就跟大家聊聊有关http请求怎么在spring boot中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

首先是经过封装:

一:初始化httpclient

private static HttpClient client = null; static { PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); cm.setMaxTotal(128);cm.setDefaultMaxPerRoute(128);client = HttpClients.custom().setConnectionManager(cm).build(); }

二:获取请求的url,因为我服务端定义的url与客户端一样,所以我直接使用请求客户端的url

//根据request获取请求的urlpublic StringBuffer getUrlToRequest(HttpServletRequest request) { StringBuffer url=request.getRequestURL();//获取请求的url(http://localhost:8080/switch/getStudentInfoByName) String[] splitArr=url.toString().split("/"); String appName=splitArr[3];//项目名称 String ipReport=splitArr[2];//项目ip:report String resultStr=url.toString().replaceAll(appName,DevFacConstans.facname).replaceAll(ipReport, DevFacConstans.ip+":"+DevFacConstans.report); return new StringBuffer(resultStr); }

获取url根据/ 进行split,因为我这是测试环境,生产环境ip,端口号(域名)肯定不是localhost,有的前面还会加上项目名称,所以我split对应的值来进行替换。

三:拼装请求参数,调用http请求

public String sendHttpToDevFac(HttpServletRequest request)throws Exception { HttpClient client = null; String returnResult=""; // http://localhost:8080/leo/1.0/h6/login StringBuffer urlBuffer=getUrlToRequest(request);//调用第二步,获取url //获取参数并拼装String dataAsJson = request.getParameter("data"); String encoderData=URLEncoder.encode(dataAsJson,"utf-8"); HttpGet get=new HttpGet(urlBuffer.append("?data=").append(encoderData).toString()); //set headersEnumeration<String> headerNames=request.getHeaderNames(); while(headerNames.hasMoreElements()) {String headerName=headerNames.nextElement(); String headerValue=request.getHeader(headerName); get.setHeader(headerName, headerValue); }client=DeviceFactoryHttp.client;logger.info("开始调用http请求,请求url:"+urlBuffer.toString());HttpResponse rep=client.execute(get); returnResult=EntityUtils.toString(rep.getEntity(),"utf-8");logger.info("http 请求调用结束!!");return returnResult; }

先获取请求的参数,再将参数拼装在url后面,URLEncoder.encode 这个不要忘了,因为参数会有一些符号,需要对参数进行编码后再加入url,否则就会抛出异常,set headers:因为有部分信息服务端会从请求头中取出,所以我将客户端的请求头也set到服务端的request中,请求的url和请求的参数拼好就就可以client.exceute(get)执行请求了。

上面的是我浏览器直接将request请求作为参数传到我客户端,我所以我可以直接从request中获取url,有的是没有request,就需要从request的上下文环境中取了。

没有经过封装的:

首先从上下文中获取request的

public static HttpServletRequest getRequest(){  ServletRequestAttributes ra= (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();  HttpServletRequest request = ra.getRequest();  return request; }

二:有了request后,就有了url,下面再来解析请求参数,因为这个参数是没有封装的,所以获取所有的请求参数

 public String centerToDeviceFacNoRequest(String key,String interfaceName)throws Exception { try {  HttpServletRequest request=getRequest();//上面第一步,从上下文中获取url  //获取reuquest请求参数  Enumeration<String> names= request.getParameterNames();  Map<String,String>paramMap=new HashMap<>();  //遍历请求map  while(names.hasMoreElements()) {   String name=names.nextElement();   String value=(String) request.getParameter(name);   paramMap.put(name, value);  }  //调用发送http请求的方法  return sendHttpToDevFacNoData(paramMap,request); } catch (Exception e) {  e.printStackTrace(); } //end return null; }

三:发送http请求

 public String sendHttpToDevFacNoData(Map<String,String>paramMap,HttpServletRequest request)throws Exception { HttpClient client = null; String result=""; StringBuffer dataBuffer=getUrlToRequest(request);//获取url dataBuffer.append("?"); client=DeviceFactoryHttp.client; Iterator<Entry<String, String>> paamIt=paramMap.entrySet().iterator(); while(paamIt.hasNext()) {  Entry<String, String> entry=paamIt.next();  dataBuffer.append(entry.getKey()).append("=").append(entry.getValue()).append("&"); } String resultUrl=dataBuffer.toString().substring(0, dataBuffer.toString().lastIndexOf("&")); //发送请求 HttpGet get=new HttpGet(resultUrl); //set headers Enumeration<String> headerNames=request.getHeaderNames(); while(headerNames.hasMoreElements()) {  String headerName=headerNames.nextElement();  String headerValue=request.getHeader(headerName);  get.setHeader(headerName, headerValue); } HttpResponse rep=client.execute(get); logger.info("开始调用http请求,请求url:"+resultUrl); //返回结果 result=EntityUtils.toString(rep.getEntity(),"utf-8"); logger.info(" http 请求调用结束!!"); return result; }

看完上述内容,你们对http请求怎么在spring boot中使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

http请求怎么在spring boot中使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

http请求怎么在spring boot中使用

今天就跟大家聊聊有关http请求怎么在spring boot中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先是经过封装:一:初始化httpclientprivate stat
2023-05-30

怎么使用Jersey客户端请求Spring Boot服务

要使用Jersey客户端请求Spring Boot服务,你需要遵循以下步骤:1. 在你的Spring Boot项目中,确保你已经添加了Jersey的依赖。你可以在`pom.xml`文件中添加以下依赖:```xmlorg.glassfish.
2023-08-18

Spring中的Http请求如何使用restTemplete实现

这篇文章给大家介绍Spring中的Http请求如何使用restTemplete实现,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。使用Spring的restTemplete进行Http请求/** rest templet
2023-05-31

Admin 怎么在Spring Boot中使用

本篇文章为大家展示了Admin 怎么在Spring Boot中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、前言Spring Boot Admin 用于监控基于 Spring Boot 的应
2023-05-31

怎么在Spring Boot中使用MyBatis

这篇文章将为大家详细讲解有关怎么在Spring Boot中使用MyBatis,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。orm框架的本质是简化编程中操作数据库的编码,发展到现在基本上就剩两
2023-05-31

怎么在Spring Boot中使用MQTT

这篇文章给大家分享的是有关怎么在Spring Boot中使用MQTT的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。为什么选择MQTTMQTT的定义相信很多人都能讲的头头是道,本文章也不讨论什么高大上的东西,旨在用
2023-06-14

spring cloud 中 如何使用HTTP请求远程服务

今天就跟大家聊聊有关spring cloud 中 如何使用HTTP请求远程服务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、Feign 简介在spring Cloud Netfl
2023-05-31

Spring Boot中怎么使用Spring MVC

本篇内容主要讲解“Spring Boot中怎么使用Spring MVC”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring Boot中怎么使用Spring MVC”吧!1.MVCMVC 是
2023-07-06

Kafka和Storm怎么在Spring boot中使用

这篇文章给大家介绍Kafka和Storm怎么在Spring boot中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。使用工具及环境配置1. java 版本jdk-1.82. 编译工具使用IDEA-20173. ma
2023-05-30

怎么在Java中发起一个http请求

这期内容当中小编将会给大家带来有关怎么在Java中发起一个http请求,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、GET与POSTGET和POST是HTTP的两个常用方法。GET指从指定的服务器中获
2023-06-14

PropertySource注解怎么在Spring boot中使用

本篇文章给大家分享的是有关PropertySource注解怎么在Spring boot中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.1. PropertySource
2023-05-30

.NET中怎么使用Flurl高效处理Http请求

在.NET中使用Flurl库可以非常高效地处理Http请求,以下是使用Flurl的一些基本用法:1. 引入Flurl库:在项目中引入Flurl库,可以通过NuGet包管理器来安装Flurl库。2. 创建FlurlClient对象:使用Flu
2023-08-09

详解Spring Boot中使用AOP统一处理Web请求日志

在spring boot中,简单几步,使用spring AOP实现一个拦截器:1、引入依赖: org.springframework.boot s
2023-05-31

Spring Boot中怎么使用Swagger

小编给大家分享一下Spring Boot中怎么使用Swagger,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Swagger 简介Swagger 是一个方便 API 开发的框架,它有以下优点:自动生成在线文档,后端开发人员
2023-06-20

使用spring boot如何对异常请求进行处理

这期内容当中小编将会给大家带来有关使用spring boot如何对异常请求进行处理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。404异常处理:@Controllerpublic class ErrorH
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录