restTemplate解析401异常失败

148 阅读1分钟

restTemplate解析401异常失败

如果使用restTemplate默认构造器的话,在进行错误解析的时候,使用

if (response.getStatusCode().isError()) { // 4XX或者5XX
		InputStream inputStream = response.getBody();
}

// 此时这个response是SimpleClientHttpResponse
// 此方法为SimpleClientHttpResponse的getBody()方法
@Override
	public InputStream getBody() throws IOException {
        // 在这一行取出的errorStream是null  这个connection使用的是private final HttpURLConnection connection;
		InputStream errorStream = this.connection.getErrorStream();
		this.responseStream = (errorStream != null ? errorStream : this.connection.getInputStream());
		return this.responseStream;
}

这时候需要在创建restTemplate的时候更改requestFactory,使用HttpComponentsClientHttpRequestFactory

RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory());

zhhll.com.cn/2020/框架/spr…