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

Android Studio Flamingo Network Inspector无法替换响应状态码问题

Android Studio Flamingo Network Inspector状态码替换不生效问题

最近试用Android Studio Flamingo的Network Inspector功能时碰到了一个坑:按照流程配置规则,把某接口返回的400状态码替换成200,同时替换响应体。配置完后Network Inspector的连接视图里显示状态码是200,响应体也符合预期,但实际在Retrofit里拿到的状态码还是400,只有响应体变了,根本没法测试代码里的成功分支。查了OkHttp的日志,状态码同样是400 Bad Request,响应体倒是正确的。

我的配置步骤

  • 在Protocol、Host URL、Path和Method字段填好目标接口的信息
  • 把Apply rule for status:设为400
  • 把Replace with status code:设为200
  • 在Body规则区域填入期望的JSON内容,并且勾选Replace entire body
  • 发起接口请求

临时解决办法

目前官方相关问题还没修复,分享两个能解决问题的临时方案:

  1. 用OkHttp Interceptor手动修改响应
    自己写个Interceptor拦截目标接口的响应,直接修改状态码和响应体:
class StatusCodeFixInterceptor : Interceptor {
    override fun intercept(chain: Interceptor.Chain): Response {
        val originalResponse = chain.proceed(chain.request())
        // 匹配你的目标接口,比如通过url判断
        val targetUrl = "你的目标接口URL"
        if (originalResponse.code == 400 && chain.request().url.toString().contains(targetUrl)) {
            return originalResponse.newBuilder()
                .code(200)
                // 替换成你需要的响应体
                .body(ResponseBody.create(originalResponse.body?.contentType(), "{\"key\":\"value\"}"))
                .build()
        }
        return originalResponse
    }
}

然后把这个Interceptor添加到OkHttp Client中:

val okHttpClient = OkHttpClient.Builder()
    .addInterceptor(StatusCodeFixInterceptor())
    .build()
  1. 改用MockWebServer模拟接口
    如果是测试场景,直接用MockWebServer来模拟接口返回,能完全控制响应的状态码、响应体等所有参数,比Network Inspector的规则更可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 02:35:05