View Javadoc
1   package civitas.bboard.server;
2   
3   import java.io.BufferedReader;
4   import java.io.IOException;
5   import java.io.InputStream;
6   import java.io.InputStreamReader;
7   import java.net.URI;
8   
9   import org.springframework.http.HttpMethod;
10  import org.springframework.http.client.ClientHttpResponse;
11  import org.springframework.stereotype.Component;
12  import org.springframework.web.client.ResponseErrorHandler;
13  
14  @Component
15  public class RestTemplateResponseErrorHandler implements ResponseErrorHandler {
16  
17  	@Override
18  	public boolean hasError(final ClientHttpResponse httpResponse) throws IOException {
19  		return httpResponse.getStatusCode().isError();
20  	}
21  
22  	@Override
23  	public void handleError(final URI url, final HttpMethod method, final ClientHttpResponse httpResponse)
24  			throws IOException {
25  		String content;
26  
27  		try (InputStream body = httpResponse.getBody();
28  				InputStreamReader inputStreamReader = new InputStreamReader(body);
29  				BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
30  			content = bufferedReader.lines().reduce(String::concat).get();
31  		}
32  
33  		throw new Error(httpResponse.getStatusCode() + ":" + content);
34  	}
35  }