我正在尝试与这里记录的LiChess Stream API集成:https://lichess.org/api#operation/streamGame
据我所知,当您对上述端点进行GET调用时,服务器会无限期地保持连接打开,并在请求的游戏更新时继续发送JSON响应。我尝试过通过Spring调用RestTemplate:
RestTemplate template = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
HttpEntity<String> entity = new HttpEntity<>("UsQjErWM", headers);
headers.setBearerAuth("<TOKEN>");
ResponseEntity<String> response = template.exchange("https://lichess.org/api/bot/game/stream/B4ClFYzJ", HttpMethod.GET, entity, String.class);
System.out.println(response);但这会无限期地挂起。我假设RestTemplate正在等待响应的结束,而响应不会到达。有没有办法连续读取流(也许可以使用Java中的一些低级Http类)?
发布于 2021-09-18 18:32:37
不太确定你是否可以用RestTemplate做到这一点,但可以肯定的是,你可以使用WebClient并从中生成Flux,也许可以尝试一下?@编辑,所以我因为没有把它作为评论发布而受到了抨击。仅供参考,你不能使用评论,直到一些声誉标记,所以感谢你远离我的能力XD @编辑2 Spring 5 Web Reactive - How can we use WebClient to retrieve streamed data in a Flux?这里是如何使用webclient订阅这样的流的例子。
https://stackoverflow.com/questions/69237378
复制相似问题