如在文档中遇到什么问题请联系作者 QQ:1172796094
本人正在找深圳Java实习工作,求大佬带飞
——————————————————————————————————————
<>Http客户端工具
既然微服务选择了Http,那么我们就需要考虑自己来实现对请求和响应的处理。不过开源世界已经有很多的http客户端工具,能够帮助我们做这些事情,例如:
* HttpClient
* OKHttp
* URLConnection
接下来,我们就一起了解一款比较流行的客户端工具:HttpClient
<>HttpClient介绍
HttpClient是Apache公司的产品,是Http Components下的一个组件。
[官网地址:http://hc.apache.org/index.html <http://hc.apache.org/index.html>](
特点:
* 基于标准、纯净的Java语言。实现了Http1.0和Http1.1
* 以可扩展的面向对象的结构实现了Http全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE)
* 支持HTTPS协议。
* 通过Http代理建立透明的连接。
* 自动处理Set-Cookie中的Cookie。
<>Spring的RestTemplate
Spring提供了一个RestTemplate模板工具类,对基于Http的客户端进行了封装,并且实现了对象与json的序列化和反序列化,非常方便。RestTemplate并没有限定Http的客户端类型,而是进行了抽象,目前常用的3种都有支持:
* HttpClient
* OkHttp
* JDK原生的URLConnection(默认的)
首先在项目中注册一个RestTemplate对象,可以在启动类位置注册:
@SpringBootApplication public class HttpDemoApplication { public static void
main(String[] args) { SpringApplication.run(HttpDemoApplication.class, args); }
@Bean public RestTemplate restTemplate() { //
默认的RestTemplate,底层是走JDK的URLConnection方式。 return new RestTemplate(); } }
在测试类中直接@Autowired注入:
@RunWith(SpringRunner.class) @SpringBootTest(classes =
HttpDemoApplication.class) public class HttpDemoApplicationTests { @Autowired
private RestTemplate restTemplate; @Test public void httpGet() { User user =
this.restTemplate.getForObject("http://localhost/hello", User.class);
System.out.println(user); } }
通过RestTemplate的getForObject()方法,传递url地址及实体类的字节码,RestTemplate会自动发起请求,接收响应,并且帮我们对响应结果进行反序列化。
学习完了Http客户端工具,接下来就可以正式学习微服务了。
热门工具 换一换