findItemsAdvanced 突然失败:与服务器的连接异常终止

findItemsAdvanced suddenly failing with: The connection with the server was terminated abnormally

几年前我在 VBA 中编写了一些 API 调用,它们一直运行良好,直到最近一个调用开始失败。

这是我使用的代码:

    Set req = CreateObject("WinHttp.WinHttpRequest.5.1")
    With req
        .Open "POST", "http://svcs.ebay.com/services/search/FindingService/v1", False
        .setRequestHeader "X-EBAY-SOA-SERVICE-NAME", "FindingService"
        .setRequestHeader "X-EBAY-SOA-OPERATION-NAME", "findItemsAdvanced"
        .setRequestHeader "X-EBAY-SOA-SECURITY-APPNAME", "MY_APP_NAME"
        .setRequestHeader "X-EBAY-SOA-SERVICE-VERSION", "1.0.0"
        .setRequestHeader "X-EBAY-SOA-GLOBAL-ID", "EBAY-US"
        .setRequestHeader "X-EBAY-SOA-REQUEST-DATA-FORMAT", "XML"
    End With
    req.Send(myXML)

这是我正在使用的 XML 的示例...

myXML = "<?xml version="1.0" encoding="utf-8"?><findItemsAdvancedRequest xmlns="http://www.ebay.com/marketplace/search/v1/services"><paginationInput><pageNumber>1</pageNumber><entriesPerPage>100</entriesPerPage></paginationInput><itemFilter><name>HideDuplicateItems</name><value>true</value></itemFilter><itemFilter><name>Seller</name><value>SELLER_NAME</value></itemFilter><keywords>"EXAMPLE OF SEARCH TERMS"</keywords><sortOrder>EndTimeSoonest</sortOrder></findItemsAdvancedRequest>"

但是,我不认为 XML 真的很重要,因为它似乎还没有达到那个程度。它只是拒绝连接(它出现)。

错误是:"The connection with the server was terminated abnormally."

发生在我​​运行req.Send(myXML).

据我所知,一切都没有改变(代码肯定没有)。我使用的其他 API 调用(open.api.ebay.com/shopping 上的 GetMultipleItems 和 GetSingleItem)仍然工作正常。该错误在今年早些时候开始偶尔出现,但在 4 月份变得持续存在,此后一直没有消失。

我尝试了来自不同开发者帐户的不同应用程序名称,但结果相同。

针对此错误提到的最常见解决方案是 Win7 机器上 VBA 中的 TLS 问题:

但是,我测试过的每台机器都是 Win10。我还 运行 检查我的连接使用的协议,它说 TLS 1.2,所以我已经使用了必要的协议(据我所知)。为了以防万一,我实施了解决 Win7 问题所需的 reg hack,但它什么也没做(如您所料)。

eBay 支持毫无用处,他们的论坛太糟糕了,我有一半时间几乎无法登录,而且 post 我试图放在那里的甚至没有出现,所以我来了。

好吧,结果是我根本没有使用任何安全协议(TLS 或其他)。我什至没有注意到 URL 以 "http:" 开头,这显然直到几个月前才正常,但他们最近必须更改它以要求所有 [=14] 的安全 http 连接=] 电话。我将 URL 更改为 "https:",它又开始工作了。