****spring boot-----restTemplate
封装了HttpURLConnection,HttpClient,Netty等接口访问实现库 restTemplet包含以下部分 HttpMessageConverter ClientHttpRequestFactory -->HttpURLConnection ResponseErrorHandler ClientHttpRequestInterceptor 部分实例代码 (1)发送GET请求(getForObject()、getForEntity()、exchange()) // 1-getForObject() User user1 = this.restTemplate.getForObject(uri, User.class); // 2-getForEntity() ResponseEntity responseEntity1 = this.restTemplate.getForEntity(uri, User.class); HttpStatus statusCode = responseEntity1.getStatusCode(); HttpHeaders header = responseEntity1.getHeaders(); User user2 = responseEntity1.getBody(); // 3-exchange() RequestEntity requestEntity = RequestEntity.get(new URI(uri)).build(); ResponseEntity responseEntity2 = this.restTemplate.exchange(requestEntity, User.class); User user3 = responseEntity2.getBody(); (2)发送POST请求(postForObject()、postForEntity()、exchange())// 1-postForObject()
User user1 = this.restTemplate.postForObject(uri, user, User.class); // 2-postForEntity() ResponseEntity responseEntity1 = this.restTemplate.postForEntity(uri, user, User.class); // 3-exchange() RequestEntity requestEntity = RequestEntity.post(new URI(uri)).body(user); ResponseEntity responseEntity2 = this.restTemplate.exchange(requestEntity, User.class); (3)设置HTTP Header信息 //1-postForObject() User user1 = this.restTemplate.postForObject(uri, user, User.class); // 2-postForEntity() ResponseEntity responseEntity1 = this.restTemplate.postForEntity(uri, user, User.class); // 3-exchange() RequestEntity requestEntity = RequestEntity.post(new URI(uri)).body(user); ResponseEntity responseEntity2 = this.restTemplate.exchange(requestEntity, User.class); (4)设置HTTP Header信息 ## @Configuration public class RestClientConfig { @Bean public ClientHttpRequestFactory httpRequestFactory() { return new HttpComponentsClientHttpRequestFactory(httpClient()); } @Bean public RestTemplate restTemplate() { return new RestTemplate(httpRequestFactory()); } @Bean public HttpClient httpClient() { Registry registry = RegistryBuilder. create() .register("http", PlainConnectionSocketFactory.getSocketFactory()) .register("https", SSLConnectionSocketFactory.getSocketFactory()) .build(); PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry); connectionManager.setMaxTotal(5); connectionManager.setDefaultMaxPerRoute(5); RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(8000) .setConnectTimeout(8000) .setConnectionRequestTimeout(8000) .build();return HttpClientBuilder.create()
.setDefaultRequestConfig(requestConfig) .setConnectionManager(connectionManager) .build(); } }