js fetch hook

这篇博客介绍了如何使用UserScript技术,通过修改window.fetch函数,实现在发送HTTP请求时进行监控和数据处理,展示了对响应体内容的逐块读取和转换。
部署运行你感兴趣的模型镜像
// ==UserScript==
// @name         Hook fetch
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!

// @include      *
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';
    window.au_fetch=window.fetch;
    window.fetch=function(url){
        console.log(url);
        return window.au_fetch.apply(window,arguments).then((response) => {
            const reader = response.body.getReader();
            const stream = new ReadableStream({
                start(controller) {
                    function push() {
                        // "done"是一个布尔型,"value"是一个Unit8Array
                        reader.read().then((e) => {
                            let { done, value }=e;
                            // 判断是否还有可读的数据?
                            console.log(done,new TextDecoder("utf-8").decode(value));
                            if (done) {
                                // 告诉浏览器已经结束数据发送
                                controller.close();
                                return;
                            }
                            // 取得数据并将它通过controller发送给浏览器
                            controller.enqueue(value);
                            push();
                        });
                    }
                    push();
                }
            });
            let ret=new Response(stream, { headers: { "Content-Type": "text/html" } })
            console.log(stream,ret);
            return ret;
        });
    };
    // Your code here...
})();

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值