如何知道发送了多少中止的POST请求?

时间:2020-10-06 12:47:48

标签: javascript upload fetch-api

我想将庞大的POST请求发送到服务器,然后在指定的时间段后中止它,以便我可以测量上行链路带宽。我知道cloudflare's speedtest website接受了此类请求。该api如下所示:要发送1MB的文件,只需使用此代码段即可。

let size = 1 * 1e6; // 1MB
let url = `https://speed.cloudflare.com/__up`;
let req =  await fetch(`${url}`, {...{
  method: 'POST',
  body: '0'.repeat(size),
  headers: { 'content-length': size }
}});
let res = await req.text();
console.log(res);

在chrome控制台中粘贴上面代码段的副本会向我发出成功的1MB请求。

我要执行的操作是使用Abort Controller API abort发出此请求,然后对将请求主体的多少发送到服务器进行某种形式的测量。

要下载,我可以在下载请求上使用ReadableStream来做到这一点,因此我知道在取消下载之前已下载了多少文件。

这可能吗?

0 个答案:

没有答案