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.
您好!
HTTP 客户端获取 TIRTOS 2.16.00.08在我的电路板上工作的示例。
我还需要实施 HTTP 客户端 POST。
我修改了 HTTP GET 示例、如下所示、用于测试 HTTP POST。
空 httpTask (UARg arg0、UARg arg1)
{
bool MoreFlag = false;
字符数据[64];
内转台;
int len;
struct sockaddr_in addr;
char postdata ="hello";
HTTPCli_Field field[3]={
{ HTTPStd_field_name_host、HOSTNAME}、
{HTTPStd_field_name_user_agent、user_agent}、
{ NULL,NULL }
};
System_printf ("向'%s'发送 HTTP POST 请求\n"、HOSTNAME");
system_flush();
HTTPCLI_construct(&CLI);
HTTPCLI_setRequestFields(&CLI);
RET = HTTPCli_initSockAddr ((struct sockaddr *)&addr、HOSTNAME、0);
如果(ret < 0){
printError ("httpTask:地址解析失败"、ret);
}
RET = HTTPCLI_CONNECT (&CLI、(struct sockaddr *)&addr、0、NULL);
如果(ret < 0){
printError ("httpTask: connect failed"、ret);
}
RET = HTTPCLI_sendRequest (&CLI、HTTPStd_POST、Request_URI、false);
如果(ret < 0){
printError ("httpTask: POST init failed"、ret);
}
RET = HTTPCLI_sendField (&CLI、HTTPStd_field_name_content_type、"text/plain"、false);
如果(ret =0){
System_printf ("httpTask:发送字段完成\n"、ret);
}
RET=HTTPCLI_sendField (&CLI、HTTPStd_field_name_content_length、"5"、false);
RET = HTTPCLI_sendRequestBody (&CLI、"hello"、5);
//"{\"测试\":\"1\"}"
// System_printf ("{\" test\":\"1\"});//"{\" test\":\"1\"}"
如果(ret =0){
System_printf ("httpTask:发送正文完成\n"、ret);
}
RET = HTTPCLI_getResponseStatus (&CLI);
if (ret!= HTTPStd_OK){
printError ("httpTask:无法获取状态"、ret);
}
System_printf ("HTTP 响应状态代码:%d\n"、ret);
RET = HTTPCli_getResponseField (&CLI、data、sizeof (data)、&moreFlag);
if (ret!= HTTPCLI_FIELD_ID_END){
printError ("httpTask:Response field processing failed"、ret);
}
Len = 0;
执行{
RET = HTTPCli_readResponseBody (&CLI、data、sizeof (data)、&moreFlag);
如果(ret < 0){
printError ("httpTask:Response body processing failed"、ret);
}
len += ret;
} while (moreFlag);
system_printf ("接收到的有效载荷%d 字节\n"、len);
system_flush();
HTTPCLI_DISCONNECT (&CLI);
HTTPCL_析 构(&CLI);
}
但是 HTTP POST 不成功、我收到以下错误消息
00009.000 TcpTimeoutRexmt:重新发送超时
httpTask:发送字段完成
错误! 代码=-104、desc = httpTask:无法获取状态
您好、Sijo、
很抱歉、我想帮助的也不多、我在帖子方面没有太多经验。 但是、我发现这个关于使用带有一些代码片段的 POST 命令的存档线程。 我希望 这对您有所帮助。 您还可以在论坛中搜索相关问题。