首页 > Java > java教程 > 正文

WireMock代理API时HTML响应而非JSON的排查与解决

DDD
发布: 2025-12-02 18:13:01
原创
562人浏览过

WireMock代理API时HTML响应而非JSON的排查与解决

在使用wiremock进行api模拟或录制时,开发者可能会遇到一个令人困惑的问题:当期望从第三方服务获取json响应时,wiremock却返回一个html页面,其中包含“we're sorry but isp-portal doesn't work properly without javascript enabled. please enable it to continue.”的提示。这种现象表明wiremock可能未能正确代理到api接口,而是指向了需要浏览器渲染的web前端页面。

问题描述与复现

通常,此问题发生在以下操作流程中:

  1. 直接调用第三方API: 首先,直接向目标第三方API发送请求,验证其返回预期的JSON响应。

    curl -X GET "http://thrdpary.service.com/api/v2/requests/6396ff4eae78da7b0457f283" \
     -H "authorization: Bearer mytoken" \
     -H "accept: application/json"
    登录后复制

    此步骤应成功获取JSON数据。

  2. 启动WireMock代理: 接着,以代理模式启动WireMock,尝试将所有请求转发到第三方服务。

    java -jar ~/tools/wiremock/wiremock-jre8-standalone-2.35.0.jar --print-all-network-traffic \
     --verbose \
     --proxy-all https://thrdpary.service.com
    登录后复制

    这里的关键是--proxy-all https://thrdpary.service.com,它指定了WireMock要代理的目标主机。

  3. 通过WireMock代理调用API: 最后,通过WireMock的本地端口(默认8080)发送相同的API请求。

    curl -X GET "http://127.0.0.1:8080/api/v2/requests/6396ff4eae78da7b0457f283" \
     -H "authorization: Bearer mytoken" \
     -H "accept: application/json"
     -H "Content-Type: application/json"
    登录后复制

    此时,预期的JSON响应并未出现,取而代之的是一个HTML页面,内容如:

    立即学习前端免费学习笔记(深入)”;

    <html lang="en"><head>...</head><body><noscript><strong>We're sorry but isp-portal doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div>...</body></html>
    登录后复制

    WireMock的日志也会显示代理请求返回的Content-Type是text/html,而非application/json

根本原因分析

出现此问题的原因在于WireMock的--proxy-all参数配置不当。在上述示例中,https://thrdpary.service.com可能是一个Web前端门户的域名,而非专门用于API交互的子域名或路径。许多现代Web应用采用前后端分离架构,前端应用(如Vue.js、React等)通常部署在一个主域名下,并通过JavaScript动态加载内容,而后端API则可能部署在不同的子域名(如api.thrdpary.service.com)或特定的路径下。

Change Style AI
Change Style AI

多风格照片生成器!AI生成30种照片

Change Style AI 167
查看详情 Change Style AI

当WireMock代理到Web前端门户时,它接收到的就是前端应用的HTML骨架,其中包含提示需要JavaScript才能正常工作的

以上就是WireMock代理API时HTML响应而非JSON的排查与解决的详细内容,更多请关注php中文网其它相关文章!

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号