- 浏览: 797168 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (480)
- Spring (12)
- Hibernate (8)
- Struts2 (4)
- Java 基础-JDK-类-接口-URI-专题研究 (27)
- 线程、线程池、多线程高并发高可用、Socket通信 (15)
- Oracle数据库 (20)
- 一般-前端js-html-其它 (25)
- JYSK-互联网金融、金融科技、支付、公司、新闻等等 (8)
- Ajax-jQuery开源框架 (7)
- Json-轻量级的数据交换格式 (14)
- JavaScript (15)
- Jsp、Servlet、Servlet+JSP+JavaBean开发模式(MVC) (18)
- Html-JavaScript-前端-调用接口 (12)
- Sql Server 2005 (6)
- 正则表达式 (2)
- Java tools (18)
- 加签与验签、加密与解密 (3)
- Ajax技术核心-xmlHttpRequest(简称XHR) (6)
- xml-数据交换格式 (3)
- 信息采集 (1)
- Http - Https - HttpClient - httpCore-SSL-TLS (10)
- HtmlParser (2)
- 标签库 (1)
- SMS (2)
- jxl-导入导出 (4)
- poi-导入导出 (2)
- 定时器Timer+Quartz (6)
- 工作流引擎JBPM3.2.3 (4)
- 工作流引擎JBPM4 (0)
- 数据源-JNDI (0)
- tomcat、weblogic等应用服务器 (6)
- 工作流引擎jbpm5 (1)
- 搜索引擎Lucene (1)
- ant (1)
- 大数据-HBase (2)
- bigtable (0)
- 数据库设计 (4)
- jquery tab (0)
- mybatis (5)
- jquery ui 1.10.3 (5)
- Jboss7 (1)
- 规则引擎drools (0)
- 工作流引擎Activiti5 (0)
- 数据库-用户自定义函数 (0)
- 数据库-存储过程 (2)
- 数据库-视图 (0)
- 数据库-触发器 (0)
- 数据库-sql (2)
- highcharts-图表工具 (1)
- sql server 2008 (6)
- 诗词-工作室 (2)
- 数据割接 (1)
- GIS-地理信息系统 (2)
- RS-遥感技术 (1)
- GPS-全球定位系统 (1)
- java整合flex_RIA开发 (3)
- C#编程语言 (5)
- webservice_axis2_cxf_soap_wsdl (2)
- sql语句 (3)
- Flex_WebService_GIS (25)
- PHP编程语言 (0)
- ExtJS4.2 (1)
- Spring mvc (5)
- EasyUI1.4.2 (16)
- 日期时间工具类 (4)
- 随机数 (1)
- Arcgis api for js (0)
- Mysql数据库 (9)
- 移动互联网 java html5/flash socket netty (0)
- API接口 (1)
- AndroidStudio (0)
- Git (2)
- Maven (5)
- IDEA (0)
- 大数据-Hadoop (2)
- JPA (0)
- Spring boot (4)
- JSF (0)
- nginx_lua_module_redis (2)
- Activiti (1)
- bootstrap (1)
- AngularJS (10)
- 数据库-索引 (1)
- Linux及其连接工具SSH (4)
- java日志管理 (2)
- islider滑动控件 (1)
- jquery (1)
- 异常处理Exception (1)
- 秒杀与类秒杀系统 (1)
- 连接数据库、数据库连接池 (4)
- 数据库-临时表 (1)
- 软件设计模式-单例、多例、代理、工厂、观察者 (3)
- 集合框架 (5)
- 人工智能--Artificial intelligence、神经网络算法、机器学习 (1)
- 分布式应用 (1)
- SOA服务-Dubbo框架-Thrift框架 (2)
- Zookeeper分布式服务框架 (2)
- intellij idea (1)
- python编程语言 (0)
- 消息队列_MQ (0)
- 消息队列_RabbitMQ (2)
- 消息队列_ActiveMQ (1)
- 消息队列_Kafka (2)
- 缓存_Redis (4)
- 缓存_Memcache (0)
- 缓存_Ehcache (0)
- ivy-ivyde (1)
- google-protocol buffers (1)
- 正向代理-正向代理服务器 (1)
- 反向代理-反向代理服务器 (1)
- JVM内存模型 (0)
- Thunder框架 (1)
- NIO-非阻塞式IO (0)
- 软件测试、性能测试 (1)
- 序列化、Serializable接口、Externalizable接口 (3)
- 线程池-ExecutorService-ThreadPoolExecutor (1)
- web.xml (1)
- java开发-java工具-实用工具网站 (6)
- 医疗 (1)
- Filter-过滤器 (2)
- Unicode码-双字节字符编码 (1)
- OpenResty (1)
- 计算机网络 (1)
- eclipse_myeclipse_intellij idea (3)
- Enum (1)
- 大数据--Big Data (1)
- 云计算--Cloud computing (1)
- Elastic-Job (1)
- Redis (2)
- 文件流-IO操作 (6)
- 计算机基础知识 (1)
- Hessian-二进制RPC协议 (1)
- String类 (3)
- BigDecimal类 (1)
- java重要接口 (1)
- ReactJS (1)
- 跨域问题 (0)
- Map (1)
- 注解 (1)
- ASCII码-单字节字符编码 (1)
- 微服务、微服务架构 (2)
- RPC协议、RPC服务、RPC框架 (0)
- java反射 (1)
- java项目之classpath (1)
- 经典算法-树 (1)
- listener-监听器 (1)
- Interceptor-拦截器 (1)
- pojo javabean (2)
- 计算机科学与技术-进阶 (1)
- 代码规范与文档编写 (1)
- UML-统一建模语言 (1)
- 对接微信、支付宝 (3)
- 压力测试 (1)
- 办公软件-Excel (1)
- 办公软件-PPT (0)
- UTF8、GBK编码 (1)
- 微服务架构:Spring Cloud架构-Dubbo架构 (6)
- Nginx (1)
- 点滴业务 (1)
- form表单-json数据-转换与接口调用 (1)
- Junit单元测试 (1)
- 大数据-Spark (1)
- 大数据-Storm (1)
- 数据库事务-Spring事务 (0)
- elasticsearch (1)
- windows (1)
最新评论
org.springframework.web.client.RestTemplate以GET或POST方式调用微服务接口:
POST调用:
GET调用
public String invokeService(HttpMethod httpMethod, UrlSe urlSe, String getParams, MultiValueMap<String, String> postParams, String token){ if(null == httpMethod || null==urlSe){ LOG.info(Constants.INPUT_PARAMS_ILLEGAL); throw new BusinessException(Constants.INPUT_PARAMS_ILLEGAL); } URI uri = util.getServiceUrl(urlSe.getService(), Constants.ERROR_URL); String url=uri.toString() + urlSe.getUrl(); String resultString=null; //header HttpHeaders httpHeaders = new HttpHeaders(); if(StringUtils.isNotBlank(token)){ httpHeaders.add(Constants.TOKEN, token); } if(HttpMethod.GET.equals(httpMethod)){ //get方法 httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8); //"?a=" + 1+"&b="+2 url += getParams; HttpEntity<String> requestEntity = new HttpEntity<String>(httpHeaders); resultString= restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class).getBody(); }else if(HttpMethod.POST.equals(httpMethod)){ //post方法 HttpEntity<MultiValueMap<String, String>> httpEntity=new HttpEntity<>(postParams, httpHeaders); resultString = restTemplate.postForEntity(url, httpEntity, String.class).getBody(); }else { LOG.info(Constants.INPUT_PARAMS_ILLEGAL); throw new BusinessException(Constants.INPUT_PARAMS_ILLEGAL); } LOG.info("resultString={}", resultString); //处理响应数据: 只返回result部分 JSONObject jsonObject = JSONObject.fromObject(resultString); if(!jsonObject.isNullObject()){ //只返回result部分 String result = jsonObject.getString(Constants.RESULT); return result; } return null; }
POST调用:
MultiValueMap<String, String> requestEntity = new LinkedMultiValueMap<String, String>(); requestEntity.add("a", 1); requestEntity.add("b", 2); String jsonString=tools.invokeService(HttpMethod.POST, UrlSe.USER_INFO, null, requestEntity, null); if(StringUtils.isBlank(jsonString)){ LOG.info(ValueConstants.USER_INFO_NOT_FOUND); throw new BusinessException(ValueConstants.USER_INFO_NOT_FOUND); }
GET调用
String getParams="?a="+1; String jsonString=commonTools.invokeService(HttpMethod.GET, UrlSource.QUERY_ROLE_ID, getParams, null, token); if(StringUtils.isBlank(jsonString)){ LOG.info(ValueConstants.INPUT_PARAMS_ILLEGAL); throw new BusinessException(ValueConstants.INPUT_PARAMS_ILLEGAL); }
发表评论
-
异步批量执行任务与回滚
2020-10-16 09:19 1153java异步方式(结合@Async和CompletableFu ... -
配置文件:yml文件和properties文件
2018-12-11 12:22 14471、读取配置文件属性值 方式一: @Autowired ... -
Spring框架之InitializingBean接口、DisposableBean接口
2018-03-26 10:29 705引用参考: --Spring提供的InitializingBe ... -
Spring 使用国际化信息 MessageSource
2018-03-20 15:50 1157引用参考: //第一种 【ResourceBundleMess ... -
Spring
2017-08-29 11:31 383参考博客: --spring加载多个配置文件 http://w ... -
Spring框架 计划任务Schedule job demo
2017-02-20 10:19 571import java.util.Date; impor ... -
Spring 事务 事务控制
2016-12-12 12:51 3550、注解 --@Autowire 自动注入 https://b ... -
spring配置文件_单个数据库_多个数据库
2014-10-30 10:49 735单个: <?xml version="1.0& ... -
Spring框架依赖的spring-web.jar
2013-10-28 14:50 1151【spring-web.jar】 --利用spring的Com ... -
Spring 重要功能
2013-08-08 16:07 811--引用参考 1、读取本地管理的属性参数 <!-- ... -
spring IOC和AOP
2012-07-18 15:34 674一、IOC:控制反转,即依赖注入 引用参考: --spring ...
相关推荐
使用 RestTemplate 实现该接口,你需要构建一个 GET 请求: ```java String url = "http://service-provider/api/users/" + userId; HttpEntity<?> requestEntity = new HttpEntity<>(headers); ResponseEntity...
下面是如何使用RestTemplate调用HTTP接口的例子: ```java RestTemplate restTemplate = new RestTemplate(); ResponseEntity<String> response = restTemplate.getForEntity("http://example.com/api", String....
以下是一个简单的RestTemplate调用服务的步骤: 1. **引入依赖**:在项目中添加Spring Cloud的相关依赖,确保RestTemplate可用。在`pom.xml`中加入如下依赖: ```xml <groupId>org.springframework.boot</...
与GET类似,首先也是创建URL对象并获取HttpURLConnection实例,但需要调用setDoOutput(true)开启输出流支持,然后通过OutputStream写入要提交的数据。完成数据发送后,再连接并读取响应。 4. **示例代码** - GET...
相信大家在调用rest webservice通常使用httpclient.该示例代码是使用httpconnection的形式,以POST和GET两种方式提交调用REST WebService。在项目中一直使用的工具类,分享给大家
"微服务的RestTemplate调用和声明式调用"这个主题深入探讨了两种常见的服务间通信方式。让我们逐一解析这两种方法。 首先,`RestTemplate`是Spring框架提供的一种客户端HTTP工具,主要用于发送RESTful请求并接收...
RestTemplate是Spring框架中用于处理HTTP客户端操作的重要工具,它提供了多种方法来发送HTTP请求,如GET、POST、PUT等。在本篇文章中,我们将详细探讨两个常用的GET方法:`getForObject()`和`getForEntity()`。 1. ...
无论是在测试API接口,还是在集成外部服务,HttpClient都是一个值得信赖的选择。然而,需要注意的是,随着Java生态的发展,Spring Framework中的RestTemplate或WebClient(针对Spring Boot 2.x及以上版本)也成为了...
如果需要在请求发送前或接收响应后执行某些操作,可以使用`ClientHttpRequestInterceptor`接口实现自定义逻辑,然后将其添加到`RestTemplate`的拦截器链中。 8. **使用Retrofit或WebClient替代** 虽然`...
Spring Boot项目中,RestTemplate是常用的HTTP客户端工具,可以方便地发起GET、POST等HTTP请求。例如,调用一个GET接口的简单代码如下: ```java @Autowired private RestTemplate restTemplate; public String ...
在Java开发中,`RestTemplate` 是一个非常重要的工具,用于执行HTTP客户端操作,比如GET、POST、PUT等。它是Spring框架的一部分,提供了一个简单易用的API来发送HTTP请求并处理响应。本文将深入探讨`RestTemplate`的...
RestTemplate 是 Spring 提供的一个用于发送 HTTP 请求的客户端工具,它可以方便地进行 GET、POST 等各种 HTTP 方法的操作。在涉及到需要身份验证的场景,比如 HTTP Basic Auth,RestTemplate 也能很好地支持。 ...
`RestTemplate`同样支持GET和POST请求,以及处理不同类型的响应数据,如JSON、XML等。使用`RestTemplate`时,代码通常更加简洁,适合Spring环境。 在实际应用中,我们可能需要处理各种复杂情况,如超时、重试、错误...
本篇文章将深入探讨HttpClient的基本用法,包括GET和POST请求的实现以及如何进行图片上传到服务器。 首先,我们从GET请求开始。GET是最简单的HTTP请求方法,通常用于获取资源。在HttpClient中,我们可以使用`...
本篇文章将详细讲解如何利用Spring的`RestTemplate`调用腾讯接口,并处理返回的`Entity`对象,同时还会涉及到FastJson这个流行的JSON解析库。 `RestTemplate`是Spring提供的一个客户端HTTP模板类,用于简化HTTP请求...
3. **RestTemplate**:Spring提供的`RestTemplate`是另一种调用HTTP接口的便捷工具,尤其适合RESTful API的调用。它提供了发送GET、POST等请求,处理响应数据,以及进行异常处理等功能。开发者可以通过`exchange()`...
HTTP接口调用是Web开发中的常见操作,尤其在微服务架构和API经济中扮演着重要角色。本资源“HTTP接口间调用Demo”提供了一个实际的Java代码示例和详细的MD格式笔记,旨在帮助开发者更好地理解和应用HTTP接口调用。 ...
例如,我们可以创建一个简单的Controller方法,使用`@LoadBalanced`修饰的RestTemplate调用其他微服务的接口: ```java @RestController public class ConsumerController { @Autowired private RestTemplate ...
调用 REST 接口的基本流程如下: - 创建 RestTemplate 实例。 - 使用 `exchange()` 或 `execute()` 方法发起请求,这两个方法都需要提供一个 URI 和请求方法。 - 设置请求头和参数。 - 处理响应,如将响应体...