Excel 找不到任何方法获取请求头

Excel 找不到任何方法获取请求头,excel,vba,web-scraping,request-headers,Excel,Vba,Web Scraping,Request Headers,我正在尝试使用vba获取请求头。在其他语言(如python)中,有一种非常简单的方法来获取.headers。然而,在vba的情况下,我被卡住了。 我知道在vba中有一种方法可以通过使用.getAllResponseHeaders来获取响应头 如何使用vba获取请求头 以下是我获取响应标题的方式: 您应该使用.setRequestHeader方法以编程方式设置请求头,否则它将是默认的IE设置。 为什么需要取回已获取的数据?您应该使用.setRequestHeader方法以编程方式设置请求标头,否则

我正在尝试使用vba获取请求头。在其他语言(如python)中,有一种非常简单的方法来获取.headers。然而,在vba的情况下,我被卡住了。 我知道在vba中有一种方法可以通过使用.getAllResponseHeaders来获取响应头

如何使用vba获取请求头

以下是我获取响应标题的方式:


您应该使用.setRequestHeader方法以编程方式设置请求头,否则它将是默认的IE设置。
为什么需要取回已获取的数据?

您应该使用.setRequestHeader方法以编程方式设置请求标头,否则它将成为默认IE设置。 为什么需要取回已经获得的数据?

Python.headers假设使用请求库提供响应头,而不是请求头。在get传递的dict中添加自定义请求头。正如您所看到的,您可以使用getAllResponseHeaders在vba中读取响应头,并通过键、值对发送带有setRequestHeader的自定义头

我通常会使用Fiddler/Dev-tools-network-tab/Wireshark之类的工具来查看发送了哪些请求头,然后模拟这些请求头,或者阅读相关的API指南,指定需要哪些自定义请求头

下面是该url的Fiddler请求头捕获的快照

WinHTTP可能有一种使用的方法,但还没有进行足够的研究,在大多数情况下只使用网络选项卡要简单得多

没有与xmlhttp请求/响应关联的方法来获取请求头。查看WHATWG living for associated methods可能是VBA实现中的一些变体:

要处理cookies,请查看MSXML2.ServerXMLHTTP

Python.headers假设使用请求库提供响应头,而不是请求头。在get传递的dict中添加自定义请求头。正如您所看到的,您可以使用getAllResponseHeaders在vba中读取响应头,并通过键、值对发送带有setRequestHeader的自定义头

我通常会使用Fiddler/Dev-tools-network-tab/Wireshark之类的工具来查看发送了哪些请求头,然后模拟这些请求头,或者阅读相关的API指南,指定需要哪些自定义请求头

下面是该url的Fiddler请求头捕获的快照

WinHTTP可能有一种使用的方法,但还没有进行足够的研究,在大多数情况下只使用网络选项卡要简单得多

没有与xmlhttp请求/响应关联的方法来获取请求头。查看WHATWG living for associated methods可能是VBA实现中的一些变体:


要处理cookies,请查看MSXML2.ServerXMLHTTP

这应该是我为什么需要这个不规则表达式的答案吗?顺便问一下,我在哪里问过如何设置请求头?我的问题是如何获取请求头?谢谢。XMLHTTP中没有获取请求头的API。您可以记录/监视您的网络以检查请求中的意外头,也可以并且应该使用setRequestHeaders自行设置所有预期头。就这些也许,这会有帮助。这应该是我为什么需要这个@unregular表达式的答案吗?顺便问一下,我在哪里问过如何设置请求头?我的问题是如何获取请求头?谢谢。XMLHTTP中没有获取请求头的API。您可以记录/监视您的网络以检查请求中的意外头,也可以并且应该使用setRequestHeaders自行设置所有预期头。就这些也许,这会有所帮助。上面您的python代码打印出来的是响应头。您在哪里打印请求标题?req是响应。。。对,你是@QHarr。这确实是响应头。然而,我想要实现的是动态获取cookie,而不是硬编码,但是xmlhttp请求没有该功能,所以我使用serverxmlhttp请求获得了成功。这是一个稍微不同的问题,我会在这里介绍你:。回答得好!以上问题的答案大致如下。请查看我在你的链接帖子中发布的内容。也许最简单的一个@QHarr.python代码在上面打印的是响应头。您在哪里打印请求标题?req是响应。。。对,你是@QHarr。这确实是响应头。然而,我想要实现的是动态获取cookie,而不是硬编码,但是xmlhttp请求没有该功能,所以我使用serverxmlhttp请求获得了成功。这是一个稍微不同的问题,我会在这里介绍你:。回答得好!以上问题的答案大致如下。请查看我在你的链接帖子中发布的内容。也许是最简单的一个@QHarr。
Sub GetRequestHeaders()
    Const URL$ = "https://stackoverflow.com/questions/tagged/web-scraping"
    Dim Http As New XMLHTTP60, S$

    With Http
        .Open "GET", URL, False
        .send
        S = .getAllResponseHeaders
        MsgBox S
    End With
End Sub