器件型号:CC3220
您好!
我们刚刚在 OtaHttpClient 函数 HttpClient_RecvSkipHdr()中发现了一个错误。
我假设此函数应跳过 HTTP 标头并返回不带标头的剩余数据大小。 但是、当第一个接收的段仅包含 HTTP 标头且返回值为0时、我们会遇到边沿情况。 这听起来很少见、但在使用 python -m http.server 时、情况往往会发生。
以下是建议的解决方法:
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
器件型号:CC3220
您好!
我们刚刚在 OtaHttpClient 函数 HttpClient_RecvSkipHdr()中发现了一个错误。
我假设此函数应跳过 HTTP 标头并返回不带标头的剩余数据大小。 但是、当第一个接收的段仅包含 HTTP 标头且返回值为0时、我们会遇到边沿情况。 这听起来很少见、但在使用 python -m http.server 时、情况往往会发生。
以下是建议的解决方法:
你好、Norman、
在您的方案中(通常情况下),您应该更好地使用"HttpClient_RecvSkipHdr ()",使其指向 contentLen (最后一个参数)。
如果提供指针、函数将检索预期的内容长度。 然后、应用程序应 使用 HttpClient_Recv 继续轮询帧的其余部分。
请参阅以下示例以供参考:
BR、
Kobi
uint32_t contentLen、recvLen=0;
int16_t Len;
…
len = HttpClient_RecvSkipHdr (SockId、pRespBuf、RespBufSize、contentLen);
while (Len >=0 && recvLen < contentLen)
{
recvLen += Len;
Len = HttpClient_Recv (SockId、pRespBuf+recvLen、RespBufSize-recvLen、0、MAX_EAGAIN_retries);
}
如果(Len < 0)
错误处理