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