Cloud之三HTTP请求
Posted JAVA微讲堂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cloud之三HTTP请求相关的知识,希望对你有一定的参考价值。
浏览器作为客户端
服务器作为客户端
如上图,浏览器做作为客户端访问服务器1,服务器1的数据由服务器2给予。因此务器1对于浏览器来说它是服务器,对于服务器2来说它是客户端。服务器1访问服务器2和浏览器访问服务器1,一样都可以通过IP+端口+请求路径。
那么服务器1如何作为客户端?
Apache Jakarta Common 下的子项目HttpClient 是一个HTTP客户端编程工具,可以用它来在代码级别实现Http客户端请求。spring对HttpClient进行了封装,这个封装后的类就是 RestTemplate,cloud也对HttpClient进行了封装,这个封装类就是FeignClient。
RestTemplate restTemplate;
"getinfo") (
public String getInfo(){
String url="http://127.0.0.1:7000/info/1";
return restTemplate.getForEntity(url,String.class).getBody();
}
如上图,我们可以加一个注册服务器,服务器只要向注册服务器注册(注册名字+IP+port)此时服务器之间的调用,用注册的服务名字即可,这样就把服务器解耦,也就是所谓注册服务器实现服务发现。
"getInfo3") (
public String getInfo3(int tag){
String url="http://clienttwo/infoEntityJson/"+tag;
//远程调用
ResponseEntity responseEntity=
restTemplate.getForEntity(url, String.class);
return responseEntity.getBody().toString();
}
代码里的clienttwo其实就映射到注册服务器中的IP+端口,clienttwo就是服务器向注册服务器注册的名字。
本文我只粘贴了RestTemplate的代码,对于FeignClient来说更简洁,项目中如果用cloud建议用FeignClient。只需要两个注解:
1、 @EnableFeignClients
2、@FeignClient
以上是关于Cloud之三HTTP请求的主要内容,如果未能解决你的问题,请参考以下文章
如何验证来自 HTTP 请求的 Google Cloud Task 令牌?