工具/软件:WEBENCH设计工具
大家好、我在程序中使用 CC3235S 时遇到了问题。CC3235S 周期操作 HTTP POST 方法任务、任务周期操作在开始时成功、但在运行15次时、程序 卡在 HttpClient_sendRequest (httpClientHandle、HTTP_METHOD_POST、POST_REQUEST_URI、
Post_Data_Buffer、strlen (Post_Data_Buffer)、HttpClient_Drop_Body) API 函数。 故障代码处是否设置有任何错误?
for (;;)
{
OSI_SyncObjWait (&xBinary0、OSI_WAIT_FOREVE); //等待操作消息
httpClientHandle = HttpClient_create (&ret、0);
if (ret < 0)
{
#ifdef debug_post
OSI_Report ("创建 http 客户端句柄失败、错误代码=%d.\r\n"、ret);
#endif
退货失败;
}
RET = HttpClient_setHeader (httpClientHandle、HttpClient_HFIELD_REQ_Accept、
USER_ACCEPT、strlen (USER_ACCEPT)+1、HttpClient_HFIELD_PERSISTENT);
if (ret < 0)
{
#ifdef debug_post
OSI_Report ("设置请求标头失败、错误代码=%d.\r\n"、ret);
#endif
退货失败;
}
RET = HttpClient_connect (https://ClientHandle、HOSTNAME、0、0);
if (ret < 0)
{
退货失败;
}
RET =HttpClient_sendRequest (httpClientHandle、HTTP_METHOD_POST、POST_Request_URI、
"{\"传感器\":["、strlen ("{\"传感器\":[")、HttpClient_chunch_start);
if (ret < 0)
{
#ifdef debug_post
OSI_Report ("httpTask:发送失败、错误代码=%d。"、ret);
#endif
退货失败;
}
RET = HttpClient_sendRequest (httpClientHandle、HTTP_METHOD_POST、POST_Request_URI、
Post_Data_Buffer、strlen (Post_Data_Buffer)、HttpClient_Drop_Body);
if (ret < 0)
{
#ifdef debug_post
OSI_Report ("httpTask:发送失败、错误代码=%d。"、ret);
#endif
退货失败;
}
HTTP_STATUS = HttpClient_sendRequest (https://ClientHandle、HTTP_METHOD_POST、POST_Request_URI、
status_buf、strlen (status_buf)、HttpClient_chunch_end);
if (http_status < 0)
{
#ifdef debug_post
OSI_Report ("httpTask:发送失败、错误代码=%d。"、ret);
#endif
退货失败;
}
Len = 0;
操作
{
RET = HttpClient_readResponseBody (httpClientHandle、data、sizeof (data)、&moreDataFlag);
if (ret < 0)
{
#ifdef debug_post
OSI_Report ("httpTask:Response body processing failed"、ret);
#endif
退货失败;
}
#ifdef debug_post
// OSI_Report ("%.*s \r\n"、ret、data);
#endif
if ((len+ret)<= sizeof (read_Response_Buffer))
{
MEM_COPY (READ_RESPONSE_Buffer+len、data、ret);
}
len += ret;
}
while (moreDataFlag);
RET = HttpClient_ddisconnect (httpClientHandle);
if (ret < 0)
{
#ifdef debug_post
OSI_Report ("httpTask:断开连接失败"、ret);
#endif
退货失败;
}
RET = HttpClient_Destroy (httpClientHandle);
if (ret < 0)
{
#ifdef debug_post
OSI_Report ("销毁 http 客户端句柄失败、错误代码=%d.\r\n"、ret);
#endif
退货失败;
}
}