Search in sources :

Example 16 with HttpEntity

use of org.springframework.http.HttpEntity in project spring-framework by spring-projects.

the class RestTemplateIntegrationTests method jsonPostForObjectWithJacksonView.

@Test
public void jsonPostForObjectWithJacksonView() throws URISyntaxException {
    HttpHeaders entityHeaders = new HttpHeaders();
    entityHeaders.setContentType(new MediaType("application", "json", StandardCharsets.UTF_8));
    MySampleBean bean = new MySampleBean("with", "with", "without");
    MappingJacksonValue jacksonValue = new MappingJacksonValue(bean);
    jacksonValue.setSerializationView(MyJacksonView1.class);
    HttpEntity<MappingJacksonValue> entity = new HttpEntity<>(jacksonValue, entityHeaders);
    String s = template.postForObject(baseUrl + "/jsonpost", entity, String.class);
    assertTrue(s.contains("\"with1\":\"with\""));
    assertFalse(s.contains("\"with2\":\"with\""));
    assertFalse(s.contains("\"without\":\"without\""));
}
Also used : HttpHeaders(org.springframework.http.HttpHeaders) HttpEntity(org.springframework.http.HttpEntity) MediaType(org.springframework.http.MediaType) MappingJacksonValue(org.springframework.http.converter.json.MappingJacksonValue) Test(org.junit.Test)

Example 17 with HttpEntity

use of org.springframework.http.HttpEntity in project spring-framework by spring-projects.

the class RestTemplateIntegrationTests method exchangeGet.

@Test
public void exchangeGet() throws Exception {
    HttpHeaders requestHeaders = new HttpHeaders();
    requestHeaders.set("MyHeader", "MyValue");
    HttpEntity<String> requestEntity = new HttpEntity<>(requestHeaders);
    ResponseEntity<String> response = template.exchange(baseUrl + "/{method}", HttpMethod.GET, requestEntity, String.class, "get");
    assertEquals("Invalid content", helloWorld, response.getBody());
}
Also used : HttpHeaders(org.springframework.http.HttpHeaders) HttpEntity(org.springframework.http.HttpEntity) Test(org.junit.Test)

Example 18 with HttpEntity

use of org.springframework.http.HttpEntity in project spring-framework by spring-projects.

the class RestTemplateTests method postForLocationEntityCustomHeader.

@Test
public void postForLocationEntityCustomHeader() throws Exception {
    given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(request);
    String helloWorld = "Hello World";
    given(converter.canWrite(String.class, null)).willReturn(true);
    HttpHeaders requestHeaders = new HttpHeaders();
    given(request.getHeaders()).willReturn(requestHeaders);
    converter.write(helloWorld, null, request);
    given(request.execute()).willReturn(response);
    given(errorHandler.hasError(response)).willReturn(false);
    HttpHeaders responseHeaders = new HttpHeaders();
    URI expected = new URI("http://example.com/hotels");
    responseHeaders.setLocation(expected);
    given(response.getHeaders()).willReturn(responseHeaders);
    HttpStatus status = HttpStatus.OK;
    given(response.getStatusCode()).willReturn(status);
    given(response.getStatusText()).willReturn(status.getReasonPhrase());
    HttpHeaders entityHeaders = new HttpHeaders();
    entityHeaders.set("MyHeader", "MyValue");
    HttpEntity<String> entity = new HttpEntity<>(helloWorld, entityHeaders);
    URI result = template.postForLocation("http://example.com", entity);
    assertEquals("Invalid POST result", expected, result);
    assertEquals("No custom header set", "MyValue", requestHeaders.getFirst("MyHeader"));
    verify(response).close();
}
Also used : HttpHeaders(org.springframework.http.HttpHeaders) HttpEntity(org.springframework.http.HttpEntity) HttpStatus(org.springframework.http.HttpStatus) URI(java.net.URI) Test(org.junit.Test)

Example 19 with HttpEntity

use of org.springframework.http.HttpEntity in project spring-framework by spring-projects.

the class RestTemplateTests method postForLocationEntityContentType.

@Test
public void postForLocationEntityContentType() throws Exception {
    given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(request);
    String helloWorld = "Hello World";
    MediaType contentType = MediaType.TEXT_PLAIN;
    given(converter.canWrite(String.class, contentType)).willReturn(true);
    HttpHeaders requestHeaders = new HttpHeaders();
    given(request.getHeaders()).willReturn(requestHeaders);
    converter.write(helloWorld, contentType, request);
    given(request.execute()).willReturn(response);
    given(errorHandler.hasError(response)).willReturn(false);
    HttpHeaders responseHeaders = new HttpHeaders();
    URI expected = new URI("http://example.com/hotels");
    responseHeaders.setLocation(expected);
    given(response.getHeaders()).willReturn(responseHeaders);
    HttpStatus status = HttpStatus.OK;
    given(response.getStatusCode()).willReturn(status);
    given(response.getStatusText()).willReturn(status.getReasonPhrase());
    HttpHeaders entityHeaders = new HttpHeaders();
    entityHeaders.setContentType(contentType);
    HttpEntity<String> entity = new HttpEntity<>(helloWorld, entityHeaders);
    URI result = template.postForLocation("http://example.com", entity);
    assertEquals("Invalid POST result", expected, result);
    verify(response).close();
}
Also used : HttpHeaders(org.springframework.http.HttpHeaders) HttpEntity(org.springframework.http.HttpEntity) HttpStatus(org.springframework.http.HttpStatus) MediaType(org.springframework.http.MediaType) URI(java.net.URI) Test(org.junit.Test)

Example 20 with HttpEntity

use of org.springframework.http.HttpEntity in project spring-framework by spring-projects.

the class RestTemplateTests method exchangeParameterizedType.

@Test
@SuppressWarnings("rawtypes")
public void exchangeParameterizedType() throws Exception {
    GenericHttpMessageConverter converter = mock(GenericHttpMessageConverter.class);
    template.setMessageConverters(Collections.<HttpMessageConverter<?>>singletonList(converter));
    ParameterizedTypeReference<List<Integer>> intList = new ParameterizedTypeReference<List<Integer>>() {
    };
    given(converter.canRead(intList.getType(), null, null)).willReturn(true);
    given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
    given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(this.request);
    HttpHeaders requestHeaders = new HttpHeaders();
    given(this.request.getHeaders()).willReturn(requestHeaders);
    given(converter.canWrite(String.class, String.class, null)).willReturn(true);
    String requestBody = "Hello World";
    converter.write(requestBody, String.class, null, this.request);
    given(this.request.execute()).willReturn(response);
    given(errorHandler.hasError(response)).willReturn(false);
    List<Integer> expected = Collections.singletonList(42);
    HttpHeaders responseHeaders = new HttpHeaders();
    responseHeaders.setContentType(MediaType.TEXT_PLAIN);
    responseHeaders.setContentLength(10);
    given(response.getStatusCode()).willReturn(HttpStatus.OK);
    given(response.getHeaders()).willReturn(responseHeaders);
    given(response.getBody()).willReturn(new ByteArrayInputStream(Integer.toString(42).getBytes()));
    given(converter.canRead(intList.getType(), null, MediaType.TEXT_PLAIN)).willReturn(true);
    given(converter.read(eq(intList.getType()), eq(null), any(HttpInputMessage.class))).willReturn(expected);
    given(response.getStatusCode()).willReturn(HttpStatus.OK);
    HttpStatus status = HttpStatus.OK;
    given(response.getStatusCode()).willReturn(status);
    given(response.getStatusText()).willReturn(status.getReasonPhrase());
    HttpHeaders entityHeaders = new HttpHeaders();
    entityHeaders.set("MyHeader", "MyValue");
    HttpEntity<String> requestEntity = new HttpEntity<>(requestBody, entityHeaders);
    ResponseEntity<List<Integer>> result = template.exchange("http://example.com", HttpMethod.POST, requestEntity, intList);
    assertEquals("Invalid POST result", expected, result.getBody());
    assertEquals("Invalid Content-Type", MediaType.TEXT_PLAIN, result.getHeaders().getContentType());
    assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept"));
    assertEquals("Invalid custom header", "MyValue", requestHeaders.getFirst("MyHeader"));
    assertEquals("Invalid status code", HttpStatus.OK, result.getStatusCode());
    verify(response).close();
}
Also used : HttpInputMessage(org.springframework.http.HttpInputMessage) HttpHeaders(org.springframework.http.HttpHeaders) HttpEntity(org.springframework.http.HttpEntity) HttpStatus(org.springframework.http.HttpStatus) URI(java.net.URI) ByteArrayInputStream(java.io.ByteArrayInputStream) ParameterizedTypeReference(org.springframework.core.ParameterizedTypeReference) List(java.util.List) GenericHttpMessageConverter(org.springframework.http.converter.GenericHttpMessageConverter) Test(org.junit.Test)

Aggregations

HttpEntity (org.springframework.http.HttpEntity)85 HttpHeaders (org.springframework.http.HttpHeaders)62 Test (org.junit.Test)46 URI (java.net.URI)15 ResponseEntity (org.springframework.http.ResponseEntity)12 LinkedMultiValueMap (org.springframework.util.LinkedMultiValueMap)12 ArrayList (java.util.ArrayList)11 MediaType (org.springframework.http.MediaType)11 RestTemplate (org.springframework.web.client.RestTemplate)11 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)10 MultiValueMap (org.springframework.util.MultiValueMap)9 List (java.util.List)8 HashMap (java.util.HashMap)7 Map (java.util.Map)7 ByteArrayHttpMessageConverter (org.springframework.http.converter.ByteArrayHttpMessageConverter)7 MappingJackson2HttpMessageConverter (org.springframework.http.converter.json.MappingJackson2HttpMessageConverter)7 HttpStatus (org.springframework.http.HttpStatus)6 HttpMessageConverter (org.springframework.http.converter.HttpMessageConverter)6 StringHttpMessageConverter (org.springframework.http.converter.StringHttpMessageConverter)6 ByteArrayInputStream (java.io.ByteArrayInputStream)5