一个之前一直跑的很正常的springboot项目,RestTemplate发起POST请求 突然一直返回错误码500,但相同的请求再postman中是可以调用的。
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate() {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setBufferRequestBody(false);
factory.setConnectTimeout(10000);
factory.setReadTimeout(30000);
return new RestTemplate(factory);
}
}
删除RestTemplateConfig中的 factory.setBufferRequestBody(false);
即可正常调用。
注意:网上说bufferRequestBody 是标志是否使用缓存流的形式,默认是 true,缺点是当发送大量数据时,比如put/post的保存和修改,那么可能内存消耗严重。