1. 程式人生 > >微服務Springcloud超詳細教程+實戰(三)

微服務Springcloud超詳細教程+實戰(三)

如在文件中遇到什麼問題請聯絡作者 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客戶端工具,接下來就可以正式學習微服務了。