http客户端
Http客戶端工具
既然微服務選擇了Http,那么我們就需要考慮自己來實現對請求和響應的處理。不過開源世界已經有很多的http客戶端工具,能夠幫助我們做這些事情,例如:
-
HttpClient
-
OKHttp
-
URLConnection
接下來,不過這些不同的客戶端,API各不相同
?
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);}@Beanpublic RestTemplate restTemplate() {return new RestTemplate();} }在測試類中直接@Autowired注入:
@RunWith(SpringRunner.class) @SpringBootTest(classes = HttpDemoApplication.class) public class HttpDemoApplicationTests {@Autowiredprivate RestTemplate restTemplate;@Testpublic void httpGet() {// 調用springboot案例中的rest接口User user = this.restTemplate.getForObject("http://localhost/user/1", User.class);System.out.println(user);} }通過RestTemplate的getForObject()方法,傳遞url地址及實體類的字節碼,RestTemplate會自動發起請求,接收響應,并且幫我們對響應結果進行反序列化。
總結
- 上一篇: rpc和http
- 下一篇: 初始springCloud