工具/软件:TI-RTOS
您好!
我将 CCS v6.2与 tm41294xl 搭配使用我想像 http get 一样创建"http post "任务、我能否在 TI-RTOS 中获取任何链接或解决方案。
此致、
Raghu DS
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.
工具/软件:TI-RTOS
您好!
我将 CCS v6.2与 tm41294xl 搭配使用我想像 http get 一样创建"http post "任务、我能否在 TI-RTOS 中获取任何链接或解决方案。
此致、
Raghu DS
Raghu、
是的、您实际上非常接近、但这是添加编译器路径的错误位置。 应将其添加到编译器设置的"Include Options"子段下。 请参阅屏幕截图。
请注意、如果您的应用基于 HttpGet 示例、则应该已经为您正确设置了路径。 但是、如果需要添加它、则应该像屏幕截图所示那样完成。
我在目录中搜索的还有 http 文件夹不包含任何文件 ,如"ssswolfsl.h"和"sssl.h"
确定这是问题-文档已过期。 文件“sssl.h”和“ssswolfsl.h”在 TIRTOS 2.16中变为“ti/net/tls.h”。 因此、您应该只需要包含"ti/net/tls.h"
Steve
您好 Raghu、
好的、我看到了问题。 事实证明、该文档中显示的示例未更新以更改 TLS 设置代码。
您应该能够执行以下操作:
1.从安全 HTTP GET 示例(针对 TivaC 的 https://get)复制 TLS 设置代码
2.然后使用文档中示例中的 HTTP 代码进行开机自检
它应该与此类似(请注意、我没有编译此代码、我只是进行了合并步骤1的代码的工作。 和2. 为您提供):
空 https://Task (UArg0、UArgarg1)
{
bool MoreFlag = false;
字符数据[64];
内转台;
int len;
struct sockaddr_in addr;
TLS_PARAMS tlsParams;
TLS_Handle TLS;
HTTPCLI_StructCLI;
//请求字段
HTTPCli_Field field[2]={
{HTTPStd_field_name_host、"www.example.com}、
{ NULL,NULL }
};
//响应字段过滤器
字符 respFields[2]={
HTTPStd_field_name_content_length、
null
};
startntp();
TLS_PARAMS_INIT (&tlsParams);
tlsParams.ca = ca;
tlsParams.calen = calen;
TLS = TLS_create (TLS_METHOD_CLIENT_TLSv1_2、&tlsParams、NULL);
如果(!TLS){
printError ("https://task: TLS create failed"、-1);
}
//构造静态 HTTP 客户端实例
HTTPCLI_construct(&CLI);
HTTPCLI_setRequestFields(&CLI);
HTTPCLi_setResponseFields (&CLI、respFields);
//安全连接到 HTTPS 服务器
HTTPCL_CONNECT (&CLI、&addr、HTTPCL_TYPE_TLS、NULL);
//发出 HTTP 1.1 POST 请求
//
//向服务器发送请求:
//
//发布/index.html HTTP/1.1
//主机:www.example.com
HTTPCLI_sendRequest (&CLI、HTTPStd_post、"/index.html"、true);
//发送附加字段
//
//内容长度:
//
HTTPCL_sendField (&CLI、HTTPStd_field_name_content_length、len、true);
//发送请求正文
//
//
HTTPCLI_sendRequestBody (&CLI、data、strlen (data));
//获取已处理的响应状态
//
// HTTP/1.1 200正常
状态= HTTPCLI_getResponseStatus (&CLI);
//检查 HTTP 返回状态并处理剩余响应
if (status =HTTPStd_OK){
执行{
//过滤响应标头并获取设置响应字段
//
//...
//内容类型:text/xml;charset=UTF-8
//内容长度:34.
//...
RET = HTTPCLI_getResponseField (&CLI、buf、sizeof (buf)、&moreFlag);
//如果字段是内容长度,则以 buf 为单位处理数据
//零是 respfields 数组中内容长度的索引
如果(ret =0){
len =(int) strtoul (buf、NULL、0);
}
} while (ret!= HTTPCLI_FIELD_ID_END);
while (len >0){
len -= HTTPCLI_readRawResponseBody (&CLI、buf、sizeof (buf));
//... 处理缓冲数据并保存...
}
}
HTTPCLI_DISCONNECT (&CLI);
HTTPCL_析 构(&CLI);
Steve