resttemplate

SpringCloud学习系列-Ribbon负载均衡(2)

三世轮回 提交于 2020-02-28 14:01:27
Ribbon配置初步 1.修改microservicecloud-consumer-dept-80工程 2.修改pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.atguigu.springcloud</groupId> <artifactId>microservicecloud</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>microservicecloud-consumer-dept-80</artifactId> <description>部门微服务消费者</description> <dependencies> <dependency><!-- 自己定义的api --> <groupId>com

SpringWeb 系列教程 RestTemplate 4xx/5xx 异常信息捕获

你。 提交于 2020-02-28 06:55:45
200104-SpringWeb 系列教程 RestTemplate 4xx/5xx 异常信息捕获 近期使用 RestTemplate 访问外部资源时,发现一个有意思的问题。因为权限校验失败,对方返回的 401 的 http code,此外返回数据中也会包含一些异常提示信息;然而在使用 RestTemplate 访问时,却是直接抛了如下提示 401 的异常,并不能拿到提示信息 那么 RestTemplate 如果希望可以获取到非 200 状态码返回数据时,可以怎么操作呢? <!-- more --> I. 异常捕获 1. 问题分析 RestTemplate 的异常处理,是借助 org.springframework.web.client.ResponseErrorHandler 来做的,先看一下两个核心方法 下面代码来自 spring-web.5.0.7.RELEASE 版本 public interface ResponseErrorHandler { // 判断是否有异常 boolean hasError(ClientHttpResponse response) throws IOException; // 如果有问题,进入这个方法,处理问题 void handleError(ClientHttpResponse response) throws IOException; }

springcloud学习记录

ぐ巨炮叔叔 提交于 2020-02-28 00:25:33
1、springcloud高可用 多个server互相注册 (3个server两两互相注册 ,1-23 ,2-13,3-12) client注册到多个server 2、beansUtil.copy 工具类 3、单价 bigdecimal 4、lombok插件 可以省掉get set方法 在idea安装 lombok plugin 在实体类使用 @Data 5、右键类名 选择 goto test 可以直接创建单元测试 extends 已生成的测试主类,或者加注解 @RunWith(SpringRunner.class)@SpringBootTest 6、JpaRepository 简单crud 自定义的简单查询就是根据方法名来自动生成SQL,主要的语法是findXXBy,readAXXBy,queryXXBy,countXXBy, getXXBy后面跟属性名称: 7、@Slf4j log.debug("{}的{}","闫斌","消息"); 8、@JSONporperty注解 9、@RequestMapping( method = {RequestMethod.GET})等价于 @GetMapping 10、谷歌安装JsonView 自动格式化json数据 获取数据 https://jsonview.com/example.json 安装jsonview:https://github

2.RestTemplate

老子叫甜甜 提交于 2020-02-27 13:32:11
RestTemplate 是Spring提供的用于访问Rest服务的客户端,可进行Http请求,可发送get请求,post请求,put请求,delete请求,表单提交,通用方法exchange 方法中的参数 主要有: 请求地址, 请求参数,可以包含请求头 返回值类型. GET请求 getForEntity 可获取响应头.相应状态码 请求参数 getForObject 无法获取响应头,相应状态码. POST请求 postForEntity postForObject postForLocation 设置请求头 //将请求头和请求体放在HttpEntity HttpHeaders headers = new HttpHeaders ( ) ; headers . setContentType ( MediaType . APPLICATION_JSON_UTF8 ) ; headers . add ( "Accept" , MediaType . APPLICATION_JSON . toString ( ) ) ; for ( String key : headerMaps . keySet ( ) ) { headers . add ( key , headerMaps . get ( key ) ) ; } HttpEntity < String > formEntity =

restTemplate的get post请求不同的header设置及传参方式

喜欢而已 提交于 2020-02-26 16:59:49
1.post 请求 //有参 请求体【body体中】json参数 JSONObject params=new JSONObject(); params.put("param1","value1"); JSONObject jsonobject=restTemplate.postForTemplate(url,params,JSONObject.class); //有参 请求体中json参数 设置header头 JSONObject param = new JSONObject(); param.put("param1","value1"); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.set("Accept", "application/json"); HttpEntity httpEntity = new HttpEntity<>(param, headers); JSONObject jsonObject = restTemplate.postForObject(url, httpEntity, JSONObject.class); 2.get请求 @Autowired private RestTemplate

Spring

空扰寡人 提交于 2020-02-26 10:45:14
在 Spring Cloud(一)服务注册与发现 中,我们提供了服务提供者的工程项目,既然有服务的提供方,那么如何去消费所提供的服务,SpringCloud中提供了多种方式来实现,该模块主要就介绍了服务消费,内容包含了服务消费(基础),服务消费(Ribbon),服务消费(Feign)。 服务消费(基础) 创建一个服务消费者工程,命名为: service-consumer ,并在 pom.xml 中引入依赖: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 <parent> <groupId>com.wkedong.springcloud</groupId> <artifactId>parent</artifactId> <version>0.0.1-SNAPSHOT</version></parent><dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org

spring boot 负载均衡Ribbon

余生长醉 提交于 2020-02-25 21:58:08
spring boot 负载均衡Ribbon 1. RestTemplate简介 2. Ribbon简介 3. 实例--使用RestTemplate和Ribbon消费服务 3.1 启动eureka server 3.2 多实例启动eureka client 3.3 验证eureka 3.4 创建 Ribbon模块 3.5 配置 3.6 创建Ribbon Config类 3.7 创建service 3.8 service test 3.9 创建controller 3.10 controller test 3.11 启动 4. LoadBalancerClent 5. 本地serverList git地址 https://github.com/a18792721831/studySpringCloud.git 1. RestTemplate简介 RestTemplate 是 Spring Resources 中一个访问第三方RESTful API 接口的网络请求框架。RestTemplate 的设计原则和其他 Spring Template(例如JdbcTemplate、JmsTemplate)类似,都是为执行复杂任务提供了一个具有默认行为的简单方法。 RestTemplate 是用来消费 REST 服务的,所以 RestTemplate 的主要方法都与REST的

Feign远程调用

孤街浪徒 提交于 2020-02-25 19:03:44
简介 Feign也叫伪装: Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等 操作,一切都交给Feign去做。 导入依赖 pom.xml 文件中添加如下依赖 < dependency > < groupId > org . springframework . cloud < / groupId > < artifactId > spring - cloud - starter - openfeign < / artifactId > < / dependency > Feign的客户端 在客户端中编写如下Feign客户端接口类: package com . itheima . consumer . client ; import com . itheima . consumer . pojo . User ; import org . springframework . cloud . openfeign . FeignClient ; import org . springframework . web . bind . annotation . GetMapping ; import org . springframework . web . bind . annotation .

Setting “Host” header for Spring RestTemplate doesn't work

梦想的初衷 提交于 2020-02-24 12:08:39
问题 I want to send an HTTP request using Spring RestTemplate, via the exchange method. The third parameter is an instance of HttpEntity , which allows setting the headers/body of the request. I tried the following code snippet: import org.springframework.http.*; import org.springframework.web.client.RestTemplate; public class Connector { public static void main(String[] args) { HttpHeaders headers = new HttpHeaders(); headers.set("Host", "www.example.com"); headers.set("User-Agent", "whatever");

Field restTemplate in com.jack.springcloud.controller.DeptController_Consumer required a bean of typ

半世苍凉 提交于 2020-02-21 19:16:32
出现问题: *************************** APPLICATION FAILED TO START *************************** Description: Field restTemplate in com.jack.springcloud.controller.DeptController_Consumer required a bean of type 'org.springframework.web.client.RestTemplate' that could not be found. Action: Consider defining a bean of type 'org.springframework.web.client.RestTemplate' in your configuration. 解决方案: 在启动类添加如下代码: @Bean public RestTemplate restTemplate(ClientHttpRequestFactory factory) { return new RestTemplate(factory); } @Bean public ClientHttpRequestFactory simpleClientHttpRequestFactory() {