200以外のレスポンスだったり、JSONなのにtext/htmlだったりするとNULLが帰ってくる。
import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestTemplate;
import java.io.IOException;
public class RestTemplateTest {
public static void main(String[] args) throws IOException { String xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\"?><AvailReq><hotelid>123</hotelid></AvailReq>";
RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_XML); HttpEntity<String> request = new HttpEntity<String>(xmlString, headers);
final ResponseEntity<String> response = restTemplate.postForEntity("http://www.rutake.com/", request, String.class);
}
}
繋がらない | org.springframework.web.client.ResourceAccessException |
200以外 | org.springframework.web.client.HttpClientErrorException: 400 Bad Request |
MockRestServiceServerを使うとレスポンスを偽装できる。