动态mock接口返回

目的:接口返回需要带请求校验参数(可能是时间戳之类的)。直接mock 返回会有问题,此时就需要通过脚本进行动态mock。

代码如下:

static function readFile(filename)    {
        var fos = new ActiveXObject( "ADODB.Stream"); 

        fos.Charset = "UTF-8";
        fos.Open;
        fos.LoadFromFile(filename);
        var s = "";
        s = fos.ReadText();
        fos.close;
        return s;
}

static function readFile(filename)    {
        var fso = new ActiveXObject( "Scripting.FileSystemObject");
        var f = fso.OpenTextFile(filename, 1);
        var s = "";
        while(!f.AtEndOfStream)
            s += f.ReadLine();
        f.Close();
        return s;
}

static function OnBeforeResponse(oSession: Session) {
            if (m_Hide304s && oSession.responseCode == 304) {
                oSession["ui-hide"] = "true";
            }
        if(oSession.hostname == "xxx.xxx.com" && oSession.url.indexOf("xxxxx") > -1 ){
            oSession["ui-color"]="red";
            oSession.utilDecodeResponse();
            var body = oSession.GetResponseBodyAsString();
            var string = readFile("D:\\xxxx.txt");
            var index = body.indexOf('(');
            var b = body.slice(0, index);
            body = b +string ;
            
            oSession.utilSetResponseBody(body);
        }
        
}

 

说明:

1、 Scripting.FileSystemObject 或 ADODB.Stream 都可以对文件进行处理,但是如果要处理UTF-8编码的,只能用ADODB.Strea

2、OnBeforeResponse 主要是在请求返回前的处理,代码实现的功能是截取接口原有响应的“(” 之前的字符串和文件的mock拼接输出成新的返回。

参考的链接:

1、http://codeplanet.me/archives/2014/08/read-utf-8-text-file-in-asp/

2、https://blog.csdn.net/u013948858/article/details/61926251

在使用Vue 3配合Mock.js时,通常Mock.js用于在前端项目中模拟后端接口返回的数据,以方便在后端服务未完成时进行前端开发和测试。Mock.js提供了丰富的接口来模拟各种类型的数据,但是默认情况下,Mock.js模拟的是JSON数据格式。 如果你在调用Mock接口返回的是HTML文档,那可能是因为Mock.js的配置或使用方式出现了偏差。通常情况下,Mock.js不会直接返回HTML文档,除非开发者特别配置了这样的行为。例如,可以使用Mock.js的Mock.function方法来模拟一个返回HTML内容的函数,或者配置特定的mock规则来返回HTML字符串。 下面是一个基本的例子,展示如何配置Mock.js以返回一个简单的HTML字符串: ```javascript import Mock from 'mockjs'; // 假设你想要模拟一个返回HTML的接口 Mock.mock('/some-html-url', 'get', function() { return Mock.mock({ // 这里的模板可以根据需要自定义 'html': '<h1>这是一个HTML模板</h1>' }); }); // 在Vue组件中,你可以使用axios等HTTP库来调用这个接口 import axios from 'axios'; axios.get('/some-html-url').then(response => { // 这里的response.data将是包含HTML内容的字符串 console.log(response.data); }); ``` 请确保你的Mock.js配置正确,且调用接口的方式没有问题。如果确实需要返回HTML文档,那么上面的配置方法可以作为一种参考。但请注意,通常情况下,前端应用应该避免直接处理HTML文档,除非这是特定功能的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值