微服務Springcloud超詳細教程+實戰(三)
阿新 • • 發佈:2018-12-12
如在文件中遇到什麼問題請聯絡作者 QQ:1172796094
本人正在找深圳Java實習工作,求大佬帶飛
——————————————————————————————————————
Http客戶端工具
既然微服務選擇了Http,那麼我們就需要考慮自己來實現對請求和響應的處理。不過開源世界已經有很多的http客戶端工具,能夠幫助我們做這些事情,例如:
- HttpClient
- OKHttp
- URLConnection
接下來,我們就一起了解一款比較流行的客戶端工具:HttpClient
HttpClient介紹
HttpClient是Apache公司的產品,是Http Components下的一個元件。
[官網地址: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客戶端工具,接下來就可以正式學習微服務了。