0

我想使用 Hoverfly 来模拟 API 响应。它是从命令行工作的,但不是从我的实际应用程序中工作的。

即使在像新用户示例这样简单的情况下也存在问题。在教程中,我创建了一个日志:

hoverctl start
hoverctl mode capture
curl --proxy http://localhost:8500 http://time.jsontest.com
hoverctl export simulation.json
hoverctl stop

然后按照下一个教程设置模拟:

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 中的模拟。

我认为这是某种代理问题,因为代码正在工作,而不是按需要处理请求。文档中似乎没有其他有用的代理选项。如何让我的应用程序使用模拟值?

4

0 回答 0