首页 > 其他分享 >http hook

http hook

时间:2022-11-13 16:46:19浏览次数:55  
标签:function http args hook let XMLHttpRequest data response

class XMLHttp {
    request = function(param) {}
    ;
    response = function(param) {}
    ;
}
let httpCopy = new XMLHttp();

// 初始化 拦截XMLHttpRequest
function initXMLHttpRequest() {
    let open = XMLHttpRequest.prototype.open;
    XMLHttpRequest.prototype.open = function(...args) {
        let send = this.send;
        let _this = this
        let post_data = []
        this.send = function(...data) {
            post_data = data;
            return send.apply(_this, data)
        }
        // 请求前拦截
        httpCopy.request(args)

        this.addEventListener('readystatechange', function() {
            if (this.readyState === 4) {
                let config = {
                    url: args[1],
                    status: this.status,
                    method: args[0],
                    data: post_data
                }
                // 请求后拦截
                httpCopy.response({
                    config,
                    response: this.response
                })
            }
        }, false)
        return open.apply(this, args);
    }
}

// 初始化页面
(function() {
    // XMLHttpRequest 拦截
    httpCopy.request = function(param) {//   console.log(param, "---request");
    }
    ;
    httpCopy.response = function(res) {
        console.log(res, "---response");
    }
    // 初始化 XMLHttpRequest
    initXMLHttpRequest();

    // 模拟数据请求 (此处写自己要使用的请求)
    // request();

}
)();

  

标签:function,http,args,hook,let,XMLHttpRequest,data,response
From: https://www.cnblogs.com/byksj/p/16886246.html

相关文章

  • 爬虫-aiohttp
     #-*-coding:utf-8-*-importrequestsimportasyncioimporttimeimportaiohttp'''-aiohttp-是一个支持异步的网络请求模块-pipinstallaiohttp......
  • BLYNK 之http api 测试
    搭了个BLYNK服务器想了解BLYNK之httpapi,由于所搭建的BLYNK服务器版本和当前blynk官网的版本不一致,没有找到相应资料。最后在网上找到了一篇https://blog.csdn.net/u0136......
  • 使用frp端口映射实现内网穿透(SSH、HTTP服务)
    文章共1,262字,阅读完预计需要2分钟7秒。文章篇幅适中,可以放心阅读。参考:[使用frp端口映射实现内网穿透(SSH、HTTP服务)-勇者の小栈](https://www.ken-chy129.cn/......
  • Http协议
    HTTP协议超文本传输协议用来规定服务端和浏览器之间的数据交互的格式#四大特性基于请求响应基于TCP/IP作用于应用层之上的协议无状态不保存用户的信由于HTTP协议......
  • 10.http客户端feign
    http客户端feignRestTemplate方式调用存在的问题先来看我们以前利用RestTemplate发起远程调用的代码:Stringurl="http://userservice/user/"+order.getUserld();Us......
  • okHttp工具类
    importcom.google.gson.Gson;importokhttp3.*;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.util.StringUtils;importj......
  • HTTP response
    response来响应这个请求。http header请求完成之后,你的浏览器可能会收到如下的HTTP响应:200 OKTransfer-Encoding: chunkedDate: Sat, 28 Nov 2009 04:36:25 GMT......
  • HTTP报错的状态码原因
    一、400错误说明服务器无法理解用户的请求,除非进行修改,不然你按再多刷新也没有用。很有可能的情况是,你不小心输入错误了,导致服务器根本不知道你要表达什么。认真检查有没......
  • 浏览器删除https证书缓存方法
    参考:https://www.jianshu.com/p/44f6ef7d51c0当访问了一个http的url网址时,经常会遇到被强行重定向到了https的相对网址上,这是因为这个域名在浏览器中已经缓存了证书,每次......
  • HTTP代理购买如何选套餐
    爬虫工作离不开HTTP代理的支持,选择合适的HTTP代理套餐可以让工作事半功倍,但网上各种各样的套餐实在是太多了,太难选择了,爬虫业务千千万,对HTTP代理的需求都不一样,因此,针......