VS Code的REST Client等扩展调用API返回HTML而非JSON问题
VS Code REST类扩展调用本地API返回HTML的解决方案
- 强制指定请求Accept头
绝大多数该类问题都是请求头不匹配导致的:后端接口会根据Accept请求头判断返回数据格式,REST Client、Thunder Client默认会携带Accept: text/html,*/*类的头,而终端curl、Postman默认携带的是Accept: */*或者明确的JSON优先级更高的头。你可以在请求配置中手动添加Accept: application/json头,即可强制后端返回JSON格式。
你可以通过curl -v 你的接口地址命令查看终端正常请求的完整头信息,和VS Code扩展发出的请求头做对比校准。 - 排查VS Code全局代理配置
如果VS Code开启了全局HTTP代理,访问localhost/127.0.0.1的本地请求可能被错误转发到代理服务器,返回代理服务的错误页HTML。
打开VS Code设置页,搜索Proxy,做以下校准:- 确认
Http: Proxy配置项为空,或者填写的代理地址符合你本地网络要求 - 把
localhost,127.0.0.1添加到Http: No Proxy配置项的忽略列表中 - 可将
Http: Proxy Support临时设置为off验证是否是代理导致的问题
- 确认
- 检查扩展独立代理配置
REST Client、Thunder Client均支持独立的代理配置,优先级高于VS Code全局配置,可打开对应扩展的设置页,确认代理配置处于关闭状态,或者和本地请求适配。 - 排除VS Code本身异常
可在REST Client中调用公共测试接口验证:
如果该请求能正常返回JSON格式数据,即可排除VS Code本身的问题,问题集中在本地服务和请求的匹配逻辑上。GET https://jsonplaceholder.typicode.com/todos/1
内容的提问来源于stack exchange,提问作者Beginner
相关产品推荐
相关产品推荐

