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

Android模拟器与Wiremock Standalone连接失败问题求助

问题诊断与解决方案

核心问题定位

你遇到的问题本质是模拟器代理指向的localhost并非宿主机的WireMock服务,同时全局代理导致非Mock请求无法正常转发,进而触发“无法提供互联网”的错误。


1. 修正WireMock监听地址与模拟器代理配置

  • WireMock默认仅监听localhost(127.0.0.1),这意味着只有宿主机本身能访问,模拟器的localhost指向的是模拟器自身,而非你的电脑。启动WireMock时需绑定所有网卡:
    java -jar wiremock-standalone-xxx.jar --port 8080 --bind-address 0.0.0.0
    
  • 模拟器代理地址不能用localhost,需替换为Android模拟器专属的宿主机IP:10.0.2.2(Google官方AVD的标准地址),所以代理设置应为10.0.2.2:8080

2. 验证代理连通性

在模拟器的浏览器中输入http://10.0.2.2:8080/__admin/,如果能加载WireMock的管理界面,说明代理链路已通;如果无法访问:

  • 检查宿主机防火墙是否放行8080端口
  • 确认WireMock启动日志中存在bind to 0.0.0.0的提示

3. 解决“无法提供互联网”错误

全局代理会让应用所有请求都走WireMock,但WireMock仅处理你配置的映射规则,未匹配的请求会被直接拒绝,导致无网络提示。两种解决思路:

  • 转发非Mock请求:在WireMock的mappings文件夹中添加一个兜底转发映射,让未匹配的请求转发到真实网络:
    {
      "request": {
        "method": "ANY",
        "urlPattern": ".*"
      },
      "response": {
        "proxyBaseUrl": "https://你的应用真实后端域名",
        "followRedirects": true
      }
    }
    
  • 缩小代理范围:如果模拟器支持,仅给应用的目标Mock域名设置代理;或在系统代理的“例外列表”中添加不需要Mock的域名(如公共服务域名),让这些请求直接走真实网络

4. 确认请求匹配规则

如果代理连通后仍无请求命中WireMock:

  • 打开WireMock管理界面的/__admin/requests页面,查看是否有请求进入
  • 检查映射文件中的url/urlPattern是否与应用实际请求路径完全匹配(注意路径前缀、参数、HTTP方法是否一致)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 07:31:04