首页 > 解决方案 > 当服务器从不停止加载时,如何在 JavaScript 中存储来自 get 请求的初始文本/事件流响应?

问题描述

我正在尝试从 API 中检索一些简单的值。这是请求网址:

https://pool.rplant.xyz/api2/poolminer2x/raptoreum/RThRfoQJg8qsoStLk7QdThQGmpbFUCtvnk/UlRoUmZvUUpnOHFzb1N0TGs3UWRUaFFHbXBiRlVDdHZua3x4

似乎服务器以某种方式将页面置于持续刷新状态。无论是在浏览器中还是通过我的代码,加载永远不会完成,但我可以在浏览器中看到 JSON 响应。大约一分钟后,另一个 JSON 响应将附加到浏览器中的原始响应。

这是我目前正在使用的代码片段,尽管我最多只等待了 5 分钟,但它似乎永远不会终止。

var response = UrlFetchApp.fetch("https://pool.rplant.xyz/api2/poolminer2x/raptoreum/RThRfoQJg8qsoStLk7QdThQGmpbFUCtvnk/UlRoUmZvUUpnOHFzb1N0TGs3UWRUaFFHbXBiRlVDdHZua3x4")
var json = JSON.parse(response.getContentText())

有没有办法让我终止永无止境的循环并检索我已经拥有的作为响应?

编辑:

正如@JeremyThille 指出的那样,响应类型是,text/event-stream但我仍然不确定谁来处理这种类型的响应。

标签: javascriptapihttpgetrequest

解决方案


看起来处理text/event-stream响应的正确方法通常是,EventSource但是,我无法将外部库用于我在 Google 表格中的用例。

var source = new EventSource('https://pool.rplant.xyz/api2/poolminer2x/raptoreum/RThRfoQJg8qsoStLk7QdThQGmpbFUCtvnk/UlRoUmZvUUpnOHFzb1N0TGs3UWRUaFFHbXBiRlVDdHZua3x4');
source.addEventListener('message', function(e) {
  console.log(e.data);
}, false);

推荐阅读