我之前提到过这个主题(https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/t/969662)、但现在我对 NWP 无法提供完全自定义页面的说法不是很满意。 NWP 程序员指南指出:
9.7.2获取处理
当 HTTP 服务器收到 HTTP GET HTTP 处理程序(如请求类型的前面部分所示)时。 处理程序函数必须是感兴趣的字段、并生成响应。
图9-11甚至显示了一个示例(请参阅下面的蓝色文本)。
那么、我想知道是否有人在没有 NWP 报告错误404的情况下使其正常工作?
#define RESPONSE_TEXT "要在浏览器中显示的示例文本"
void NetAppRequestHandler( slNetAppRequest_t *pNetAppRequest,
slNetAppResponse_t * pNetAppResponse)
{
char * contentType ="text/html";
unsigned char *pMetadata;
unsigned char * pResponseText;
pMetadata =(unsigned char*) malloc (128);
pResponseText =(unsigned char*) malloc (sizeof (Response_text));
if ((NULL =pMetadata)||(NULL =pResponseText))
{
/*分配错误*/
}
memcpy (pResponseText、RESPONSE_text、sizeof (RESPONSE_text));
switch (pNetAppRequest->Type)
{
案例 SL_NetApp_Request_HTTP_Get:
{
pNetAppResponse->Status = SL_NetApp_HTTP_RESPONSE_200_OK;
/*将内容类型 TLV 写入缓冲区*/
pNetAppResponse->ResponseData.pMetadata = pMetadata;
*pMetadata =
(_u8) sl_netapp_request_metadata_type_http_content_type;
pMetadata++;
*(_U16 *) pMetadata =(_U16) strlen (contentType);
pMetadata+=2;
memcpy (pMetadata、contentType、strlen (contentType));
pMetadata+=strlen (contentType);
/*将内容长度 TLV 写入缓冲区*/
pMetadata = sl_NetApp_Request_metadata_type_http_content_LEN;
pMetadata++;
*(_U16 *) pMetadata = 2;
pMetadata+=2;
*(_U16 *) pMetadata =(_U16) sizeof (RESPONSE_TEXT);
pMetadata+=2;
/*计算并写入元数据的总长度*/
pNetAppResponse->ResponseData.MetadataLen =
pMetadata - pNetAppResponse->ResponseData.pMetadata;
/*写下响应的文本*/
pNetAppResponse->ResponseData.PayloadLen = sizeof (RESPONSE_TEXT);
pNetAppResponse->ResponseData.pPayload = pResponseText;
pNetAppResponse->ResponseData.Flags = 0;
}
中断;
默认值:
/*将在此处收到开机自检/置入/删除请求。 */中断;
}
}