RestTemplate


RestTemplate是Spring提供的用於訪問Rest服務的客戶端,RestTemplate提供了多種便捷訪問遠程Http服務的方法,能夠大大提高客戶端的編寫效率。
調用RestTemplate的默認構造函數,RestTemplate對象在底層通過使用java.net包下的實現創建HTTP 請求,可以通過使用ClientHttpRequestFactory指定不同的HTTP請求方式。
ClientHttpRequestFactory接口主要提供了兩種實現方式

  • 一種是SimpleClientHttpRequestFactory,使用J2SE提供的方式(既java.net包提供的方式)創建底層的Http請求連接。
  • 一種方式是使用HttpComponentsClientHttpRequestFactory方式,底層使用HttpClient訪問遠程的Http服務,使用HttpClient可以配置連接池和證書等信息。

     

private RestTemplate createRestTemplate(){

HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory()
requestFactory.setConnectTimeout(connectTimeout);
requestFactory.setReadTimeout(readTimeout);

RestTemplate restTemplate = new RestTemplate(requestFactory);
restTempate.getMessageConverters().add(0,new MyStringHttpMessageConverter());
return restTemplatet
}

RestTemplate的getForObject完成get請求、postForObject完成post請求、put對應的完成put請求、delete完成delete請求;還有execute可以執行任何請求的方法,需要你設置RequestMethod來指定當前請求類型。

RestTemplate.getForObject(String url, Class responseType, String... urlVariables)

String content = getXMLContent(carNo);
  HttpHeaders headers = new HttpHeaders();
  MediaType type = new MediaType("text","xml",Charset.forName(CHARSET_GBK));
  headers.setContentType(true);
  HttpEntity<String> entity = new HttpEntity<String>(content,headers);
  long ss = System.nanoTime();
  String result = restTemplate.postForObject(url,entity,String.class);

添加applicationContext-beans.xml完成對restTemplate的配置。restTemplate需要配置MessageConvert將返回的xml文檔進行轉換,解析成JavaObject。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM