我正在使用 Excel(因为数据保存在电子表格中)浏览数千个链接的列表,看看它们是否损坏,也就是当我 RESTful 获取它们时它们是否返回 404。但是,我的 VBA 代码返回的不是我使用 curl 时的内容,在这种情况下 curl 是正确的(页面存在)。这是我的代码,其中包含导致问题的链接(它在子例程中,不用担心):
For i = StartRow To EndRow
Let copyRange = "H" & i
Let writeRange = "T" & i
query = Worksheets("Sheet1").Range(copyRange).Value
If query = "" Then
Else
With zipService
.Open "GET", query, False
End With
zipService.send
zipResult = zipService.Status
Worksheets("Sheet1").Range(writeRange).Value = zipResult
End If
Next i
卷曲命令行:
curl –sL –w “%{http_code} \n” http://URLHERE” –o /dev/null
造成麻烦的链接:http: //www.stopwaste.org/home/index.asp#
Curl 返回 200,VBA 返回 404。同一个链接已经失败了好几次,所以我不认为这是“服务器刚刚关闭一秒钟”的情况。我认为我的 # 字符有问题,所以我删除了它,但得到了完全相同的响应。该代码成功地报告了其他 404,所以不知何故,有一种情况会产生误报(或否定,无论你想调用它)。“如果查询 =”“那么”是为了没有 GET 到空 URL,VBA 不喜欢这些。
我在这里很困惑,希望有人能够帮助我。提前致谢!