ESP8266 – ESP8266HTTPClient库 – collectHeaders

位置导航: ESP8266库 / ESP8266HTTPClient库 / 本页

说明

在我们使用ESP8266HTTPClient库中的headerheadersheaderNamehasHeader 函数来处理网站服务器响应头以前,需要首先调用本函数来设置ESP8266具体收集哪些响应头信息。

语法

httpClient.collectHeaders(headerKeys, headerKeysCount)

参数

– headerKeys: 响应头名数组。此数组中的元素即是需要ESP8266处理或收集的响应头信息。下面我们看一个headerKeys数组的例子:
const char *headerKeys[] = {"Content-Length", "Date"};
此数组共有两个元素,分别是”Content-Length”和”Date”。只有如此建立了数组后,接下来的程序里我们才可以使用其它ESP8266HTTPClient库函数来处理这两个响应头的信息内容。可以把这个数组看作是对ESP8266的提醒,即告诉ESP8266在后续的程序中,我们将要对数组中所包含的响应头信息进行处理。(具体操作方法,请见本函数的示例程序部分。)

– headerKeysCount: 需要获取/处理的响应头个数(可选参数,类型:size_t)

返回值

示例程序

关于本函数的具体使用方法,请参考以下代码,尤其是代码中高亮的语句部分。

您将WiFi连接信息修改后并且将本示例程序上传ESP8266开发板后,开发板随即会自动连接WiFi。WiFi连接成功后,ESP8266将会向www.example.com网站服务器发送HTTP请求,并且将服务器响应头中的”Content-Length”和”Date”信息通过串口监视器输出。(如下图所示)

ESP8266-示例程序运行结果
ESP8266-示例程序运行结果

我们通过以下示例程序的const char *headerKeys[] = {"Content-Length", "Date"};语句建立了headerKeys数组。该数组将被用于接下来程序中的httpClient.collectHeaders(headerKeys, 2);语句。以上操作的目的是为了告知ESP8266我们即将对服务器响应头中的”Content-Length”, “Date”信息进行处理。

在后续的程序中,我们使用了一系列串口输出语句将服务器响应头中的”Content-Length”, “Date”信息通过串口监视器显示,也就是您所看到的上图内容。

值得注意的是,在上图中红色标注的Connection响应头信息是空的。造成这个结果的原因是我们在建立headerKeys数组时,没有在该数组中加入Connection这一元素。那么ESP8266在后续的程序中自然就无法输出Connection信息了。

以上程序利用collectHeaders函数获取服务器响应头信息,并通过串口监视器将获取到的响应头信息输出,以便我们查阅程序运行结果。

在以上程序中有2条语句很重要。

1. const char *headerKeys[] = {"Content-Length", "Date"};
这条语句建立了用于存储响应头信息的数组。

2. httpClient.collectHeaders(headerKeys, 2);
这条语句用于设置响应头收集。

相关内容

header – 获取指定响应头参数值
headers – 获取响应头数量
headerName – 获取指定的响应头名
hasHeader – 确认是否存在指定响应头

位置导航: ESP8266库 / ESP8266HTTPClient库 / 本页