尽管URL更改,但Webquery仍在持久/缓存http auth失败

时间:2018-03-24 21:22:29

标签: excel vba http urlmon

我确实有一个奇怪的问题,寻找一个有优雅解决方案的人。 我使用像

这样的东西
 With destCell.Parent.QueryTables.Add(Connection:="TEXT;" & exportUrl, Destination:=destCell)
        'all these have sane defaults, yes, but if the user used text to columns with something, this changes magically. So stupid
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileDecimalSeparator = "."
        .TextFileThousandsSeparator = False
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileCommaDelimiter = True
        .TextFileTabDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileConsecutiveDelimiter = False
        ' there is no way to set this to nothing, apparently.
        .TextFileOtherDelimiter = ","
        .TextFilePlatform = 65001 'UTF-8
        .Refresh BackgroundQuery:=False
    End With

从php Web应用程序中获取数据。我在URL中有访问密钥作为查询参数。如果他们是正确的,一切都很好。 如果它们错了,php会返回一个http 403页面。这使Excel引发错误1004,我抓住了,一切都很好。 现在,对代码的任何后续调用,改变(现在正确)访问密钥stil都会提高1004. Excel根据服务器日志甚至不再启动http请求。看起来它正在缓存http响应代码。

由于用户必须输入密钥,因此很容易发生错误。我想提出进入正确的,但上述情况会让他们看起来仍然错误......

欢迎您的想法! 运行Excel 2016,如果这会产生影响。

1 个答案:

答案 0 :(得分:0)

"溶液"实际上是一种解决方法。我不再发送http 403,而是处理有效载荷中的erorr。 这只留下连接问题。因为它们应该是罕见的,我现在只是要求用户重新启动excel,如果发生这种情况。