We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
@Component public class RestTemplateErrorHandle extends DefaultResponseErrorHandler { @Override public void handleError(ClientHttpResponse response) {} }
// TODO: so need overwrite ResponseExtractor to get response firstly, but there are issue about InputStream read repeated.
ResponseExtractor
@Component public class RestTemplateProxy extends RestTemplate { @Override public <T> ResponseExtractor<ResponseEntity<T>> responseEntityExtractor(Type responseType) { return new NoExceptionRestTemplateResponseEntityExtractor<>( responseType, getMessageConverters()); } }
public class NoExceptionRestTemplateResponseEntityExtractor<T> implements ResponseExtractor<ResponseEntity<T>> { private static final Logger log = LoggerFactory.getLogger(NoExceptionRestTemplateResponseEntityExtractor.class); private final HttpMessageConverterExtractor<T> delegate; NoExceptionRestTemplateResponseEntityExtractor( Type responseType, List<HttpMessageConverter<?>> converters) { if (responseType != null && Void.class != responseType) { this.delegate = new HttpMessageConverterExtractor<>(responseType, converters); } else { this.delegate = null; } } @Override public ResponseEntity<T> extractData(ClientHttpResponse response) throws IOException { if (this.delegate != null) { T body = null; try { // TODO: read response firstly, then call super method /* InputStream inputStream = response.getBody(); BufferedInputStream buffInputStream = new BufferedInputStream(inputStream); buffInputStream.mark(inputStream.available() + 1); String content = new String(ByteStreams.toByteArray(buffInputStream), Charsets.UTF_8); buffInputStream.reset(); */ body = this.delegate.extractData(response); } catch (RuntimeException e) { return new ResponseEntity(null, response.getHeaders(), response.getStatusCode()); } return new ResponseEntity<>(body, response.getHeaders(), response.getStatusCode()); } else { return new ResponseEntity<>(response.getHeaders(), response.getStatusCode()); } } }
The text was updated successfully, but these errors were encountered:
wanted code
Sorry, something went wrong.
Alice52
No branches or pull requests
usage
// TODO: so need overwrite
ResponseExtractor
to get response firstly, but there are issue about InputStream read repeated.The text was updated successfully, but these errors were encountered: