为什么我总是使用 HTTP GET 请求得到内容长度为 0
Why am I always getting a content length of 0 using HTTP GET request
我有一个 Telit HE910 蜂窝调制解调器,通过 UART 与 AVR 通信。我正在向服务器发出用于 HTTP GET 的 AT 命令。根据调制解调器数据表,我应该得到三个胡萝卜 (<<<),然后是来自服务器的数据流。我得到了三个胡萝卜,但没有数据。 HTTP 响应代码为 200 (ok),内容长度为 0。在服务器端,我正在记录请求,以便我可以验证 GET 请求是否到达服务器。所以在服务器和调制解调器上,我都可以,但没有数据。我可以从另一个网页向服务器执行 GET 请求,它工作正常。有谁知道是什么原因造成的?
PHP 页面只是在请求中回显字符串。例如
<php?
header('Content-type: text/plain');
echo 'Test';
?>
AVR/调制解调器代码
sprintf(buf, "#HTTPCFG=0,\"%s\",80,0,,,0,120,1", host);
AT_ASSERT(AT_OK == AT_SendCommand(buf, response));
sprintf(buf, "#HTTPQRY=%d,%d,%s%c",
get_profile(),
0,
page,
CR);
AT_ASSERT(AT_OK == AT_SendCommand(buf, response));
sprintf(buf, "AT#HTTPRCV=0%c", CR);
UART0_TxString(buf);
c = UART0_RxChar();
response[0]=c;
i=0;
while((c=UART0_RxChar()) != CR)
{
response[i++]=c;
}
UART1_Flush();
UART1_Printf("received: %s\n", response);
终端响应
received:
<<<
HTTP POST Complete
根据数据表,<<<后面应该有数据
好的,事实证明AVR上的C代码没有问题。我找到了一个用于 HTTP GET 请求的测试服务器,并在该站点上成功测试了该模块。所以潜在的问题是 PHP 文件响应 HTTP GET 请求。
我有一个 Telit HE910 蜂窝调制解调器,通过 UART 与 AVR 通信。我正在向服务器发出用于 HTTP GET 的 AT 命令。根据调制解调器数据表,我应该得到三个胡萝卜 (<<<),然后是来自服务器的数据流。我得到了三个胡萝卜,但没有数据。 HTTP 响应代码为 200 (ok),内容长度为 0。在服务器端,我正在记录请求,以便我可以验证 GET 请求是否到达服务器。所以在服务器和调制解调器上,我都可以,但没有数据。我可以从另一个网页向服务器执行 GET 请求,它工作正常。有谁知道是什么原因造成的?
PHP 页面只是在请求中回显字符串。例如
<php?
header('Content-type: text/plain');
echo 'Test';
?>
AVR/调制解调器代码
sprintf(buf, "#HTTPCFG=0,\"%s\",80,0,,,0,120,1", host);
AT_ASSERT(AT_OK == AT_SendCommand(buf, response));
sprintf(buf, "#HTTPQRY=%d,%d,%s%c",
get_profile(),
0,
page,
CR);
AT_ASSERT(AT_OK == AT_SendCommand(buf, response));
sprintf(buf, "AT#HTTPRCV=0%c", CR);
UART0_TxString(buf);
c = UART0_RxChar();
response[0]=c;
i=0;
while((c=UART0_RxChar()) != CR)
{
response[i++]=c;
}
UART1_Flush();
UART1_Printf("received: %s\n", response);
终端响应
received:
<<<
HTTP POST Complete
根据数据表,<<<后面应该有数据
好的,事实证明AVR上的C代码没有问题。我找到了一个用于 HTTP GET 请求的测试服务器,并在该站点上成功测试了该模块。所以潜在的问题是 PHP 文件响应 HTTP GET 请求。