Mac Excel Web查询无法正常工作

时间:2017-03-31 08:41:46

标签: excel-vba excel-vba-mac excel-web-query vba excel

我们使用web queries在Excel中检索数据以进行报告。这些Web查询在Excel 2007,2010,2013和2016中正常运行 但是当在 Mac Excel 2016中使用时,它会失败

我们使用VBA执行这些网页查询,并检索Spring REST界面生成的数据。

我已尝试使用http GET代替http POST,并尝试通过用户界面执行网络查询('数据' - &gt;'获取外部数据' - &gt;'运行保存的查询'使用.iqy档案。) 此外,错误似乎与内容无关(尝试过非常简单的html; <html><body><table><tr><td>col1</td></tr><tr><td>value1</td></tr></table></body></html>

使用Wireshark分析流量时,REST调用的响应是正确的(http 200具有正确的内容)。

使用“.iqy”文件使用UI导入报告的错误:"cannot locate the internet server or proxy server"。 使用VBA执行Web查询时出错:"Error 1004 Application-defined or Object-defined error"

有没有人知道会导致这种行为的原因是什么?

1 个答案:

答案 0 :(得分:0)

找到原因:Spring MVC(REST)设置了一些default headers。其中一个是X-Content-Type-Options: nosniff。我们生成一些REST响应数据的方式导致未设置Content-Type标头。

Mac Excel无法确定内容类型(因为X-Content-Type-Options:nosniff选项)

这可以通过不设置X-Content-Type-Options标头或明确设置Content-Type标头来解决。

奖励信息:我使用WireMock来模拟REST界面,并且能够逐个删除标题,从而暴露出罪魁祸首。