场景:我有一个使用Java11开发的丝带eureka服务应用程序。由于RestTemplate不支持InputStream作为响应体,我们需要从RestTemplate切换到另一个RestTemplate客户端,例如Java11HTTP客户端。
是否有可能将Java 11 HTTP客户端配置为支持功能区eureka?(或者另一个支持inputStream的HTTP客户端,它可以配置成缎带eureka)
发布于 2022-03-22 14:25:32
不要切换堆栈,因为你认为你无法完成某些事情。postFor等方法在RestTemplate上确实不允许您返回InputStream。虽然您可以使用Resource,但这仍然会读取内存中的整个流。您可能希望处理响应流。
对于这种低级别访问,请使用ResponseExctractor和一个execute方法来使用它。
restTemplate.execute(url, POST, httpEntityCallback(entity), (res) -> this::handleResponse);private Object handleResponse(ClientHttpResponse res) {
  InputStream in = res.getBody();
  // Do stuff with the input stream
  return null;
}沿着这些路线的东西应该能起作用。
https://stackoverflow.com/questions/71571924
复制相似问题