问题描述
我想使用 Hoverfly 来模拟 API 响应。它可以从命令行运行,但不能从我的实际应用中运行。
即使是像新用户示例这样简单的情况,问题仍然存在。在 the tutorial 中,我创建了一个日志:
hoverctl start
hoverctl mode capture
curl --proxy http://localhost:8500 http://time.jsontest.com
hoverctl export simulation.json
hoverctl stop
然后像 the next tutorial 一样设置模拟:
hoverctl start
hoverctl import simulation.json
hoverctl mode simulate
curl --proxy localhost:8500 http://time.jsontest.com
这工作正常,按预期显示保存的结果。但是当我试图从我网站的本地开发环境中点击模拟响应时,它失败了。该站点(create-react-app 的一个稍微修改的版本)使用 Axios 进行请求,我的组件定义中的相关代码是:
state = {
error: null,isLoaded: false,apiData: null
};
componentDidMount() {
let apiUrl = "http://time.jsontest.com";
axios.get(apiUrl,{
proxy: {
host: 'localhost',port: 8500
}
}).then(
result => {
this.setState({
isLoaded: true,apiData: result.data
});
}
);
}
当我在我的开发环境中加载页面(即在浏览器中加载 localhost:3000
)时,它会发出一个真实的网络请求并从实时 API 中获取最新的实际时间,而不是保存在 Hoverfly 中的模拟。
我认为这是某种代理问题,因为除了没有按需要处理请求之外,代码还在工作。 the docs 中似乎没有其他有用的代理选项。如何让我的应用使用模拟值?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)