You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WireMock.Net如何配置同一路由交替返回200正常响应和500错误响应

解决方案

WireMock.Net 原生支持动态响应逻辑,你可以通过传入响应生成委托的方式实现按需返回不同状态码和响应体,完整实现代码如下:

using System.Threading;
using WireMock.RequestBuilders;
using WireMock.ResponseBuilders;
using WireMock.Server;

// 初始化WireMock服务
var server = WireMockServer.Start();

// 定义线程安全的请求计数器
int requestCount = 0;

server.Given(Request.Create().WithPath("/some/thing").UsingGet())
    .RespondWith(req =>
    {
        // 原子递增计数,避免多线程并发场景下计数不准
        int currentCount = Interlocked.Increment(ref requestCount);
        
        // 偶数次请求返回200
        if (currentCount % 2 == 0)
        {
            return Response.Create()
                .WithStatusCode(200)
                .WithBody("自定义正常响应内容");
        }
        // 奇数次请求返回500
        else
        {
            return Response.Create()
                .WithStatusCode(500)
                .WithBody("自定义500错误响应内容");
        }
    });

补充说明

  • 委托内可以任意扩展判断逻辑,如果你后续需要调整为按比例分配响应、或根据请求参数返回不同内容,都可以直接在这个委托里修改规则
  • 如果需要在服务重启后重置计数,只需要重新初始化requestCount变量即可

内容的提问来源于stack exchange,提问作者satellite satellite

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 08:45:01