当前位置: 首页 > news >正文

学校门户网站是什么意思网站建设高端培训

学校门户网站是什么意思,网站建设高端培训,制作网站的软件有哪些,电子商务公司名字推荐目录 参考教程1.使用的http连接2.使用Vscode-IDF创建http_request例程3.修改http_request_example_main.c函数4.已经获取到响应的数据 参考教程 ESP-IDF HTTP获取网络时间 1.使用的http连接 http://api.m.taobao.com/rest/api3.do?apimtop.common.getTimestamp请求可以得到…

目录

  • 参考教程
  • 1.使用的http连接
  • 2.使用Vscode-IDF创建`http_request`例程
  • 3.修改`http_request_example_main.c`函数
  • 4.已经获取到响应的数据

参考教程

ESP-IDF HTTP获取网络时间

1.使用的http连接

http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp

请求可以得到下面Json数据
在这里插入图片描述

2.使用Vscode-IDF创建http_request例程

创建例程后,在设置中输入wifi的账号密码
在这里插入图片描述

3.修改http_request_example_main.c函数

http_request_example_main.c

#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_wifi.h"
#include "esp_event.h"
#include "esp_log.h"
#include "nvs_flash.h"
#include "protocol_examples_common.h"#include "lwip/err.h"
#include "lwip/sockets.h"
#include "lwip/sys.h"
#include "lwip/netdb.h"
#include "lwip/dns.h"
#include "sdkconfig.h"#include <cJSON.h>
#include "esp_http_client.h"static const char *TAG = "example";#define MAX_HTTP_OUTPUT_BUFFER 2048 // http最大数据接收大小
bool gettime = true;                // 是否从网络请求时间
esp_err_t _http_event_handler(esp_http_client_event_t *evt)
{cJSON *pMacAdress = NULL;
#if 0
//switch判断事件代码提示出错可以写成if方式switch (evt->event_id){case HTTP_EVENT_ERROR:ESP_LOGI(TAG, "HTTP_EVENT_ERROR");break;case HTTP_EVENT_ON_CONNECTED:ESP_LOGI(TAG, "HTTP_EVENT_ON_CONNECTED");break;case HTTP_EVENT_HEADER_SENT:ESP_LOGI(TAG, "HTTP_EVENT_HEADER_SENT");break;case HTTP_EVENT_ON_HEADER:ESP_LOGI(TAG, "HTTP_EVENT_ON_HEADER");printf("%.*s", evt->data_len, (char *)evt->data);break;case HTTP_EVENT_ON_DATA:ESP_LOGI(TAG, "HTTP_EVENT_ON_DATA,len=%d", evt->data_len);if (!esp_http_client_is_chunked_response(evt->client)){printf("%.*s", evt->data_len, (char *)evt->data);}break;case HTTP_EVENT_ON_FINISH://http完成事件ESP_LOGI(TAG, "HTTP_EVENT_ON_FINISH");break;case HTTP_EVENT_DISCONNECTED://http断开连接事件ESP_LOGI(TAG, "HTTP_EVENT_DISCONNECTED");break;}
#endifif (evt->event_id == HTTP_EVENT_ON_DATA) // 收到数据事件{ESP_LOGI(TAG, "HTTP_EVENT_ON_DATA,len=%d", evt->data_len);if (!esp_http_client_is_chunked_response(evt->client)){ESP_LOGI(TAG, "响应:%s", (char *)evt->data);cJSON *pJsonRoot = cJSON_Parse(evt->data); // cJSON解析json格式数据if (pJsonRoot != NULL) // 如果是否json格式数据{pMacAdress = cJSON_GetObjectItem(pJsonRoot, "api"); // 解析字段字符串内容if (pMacAdress != NULL){if (cJSON_IsString(pMacAdress)) // 判断字段是否string类型{ESP_LOGI(TAG, "api = %s", pMacAdress->valuestring);}}pMacAdress = cJSON_GetObjectItem(pJsonRoot, "v"); // 解析字段字符串内容if (pMacAdress != NULL){if (cJSON_IsString(pMacAdress)) // 判断字段是否string类型{ESP_LOGI(TAG, "v = %s", pMacAdress->valuestring);}}pMacAdress = cJSON_GetObjectItem(pJsonRoot, "ret");if (pMacAdress != NULL){// ret的数据应该怎么提取,不知道.有知道的朋友麻烦留言告知}pMacAdress = cJSON_GetObjectItem(pJsonRoot, "data"); // 解析字段字符串内容if (pMacAdress != NULL){cJSON *pSub_2 = cJSON_GetObjectItem(pMacAdress, "t");if (pSub_2 != NULL){if (cJSON_IsString(pSub_2)) // 判断字段是否string类型{ESP_LOGI(TAG, "data/t = %s", pSub_2->valuestring);}}}}else{ESP_LOGI(TAG, "数据错误,不是JSon格式");}cJSON_Delete(pJsonRoot);}}return ESP_OK;
}
static void http_get_task(void *pvParameters)
{while (gettime){char local_response_buffer[MAX_HTTP_OUTPUT_BUFFER] = {0};esp_http_client_config_t config = {.method = HTTP_METHOD_GET, // get方式请求数据.url = "http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp",// .url = "http://sensor.local/number/sensor_time",.event_handler = _http_event_handler,.user_data = local_response_buffer,};esp_http_client_handle_t client = esp_http_client_init(&config);esp_err_t err = esp_http_client_perform(client);if (err == ESP_OK){ESP_LOGI(TAG, "HTTP GET Status = %d, content_length = %d",esp_http_client_get_status_code(client),(int)esp_http_client_get_content_length(client));gettime = false;}else{ESP_LOGI(TAG, "HTTP GET request failed: %s", esp_err_to_name(err));}ESP_LOGI(TAG, "%s\n", local_response_buffer);esp_http_client_cleanup(client);vTaskDelay(1000 / portTICK_PERIOD_MS);}while (1){vTaskDelay(1000 / portTICK_PERIOD_MS);}
}void app_main(void)
{ESP_ERROR_CHECK(nvs_flash_init());ESP_ERROR_CHECK(esp_netif_init());ESP_ERROR_CHECK(esp_event_loop_create_default());ESP_ERROR_CHECK(example_connect()); // 在menuconfig中wifi的账号密码xTaskCreate(&http_get_task, "http_get_task", 4096, NULL, 5, NULL);
}

4.已经获取到响应的数据

在这里插入图片描述

http://www.yayakq.cn/news/347302/

相关文章:

  • 网站建设各个模块的功能网站业务费如何做记账凭证
  • 网站文章更新怎么做做收钱的网站要什么条件
  • 如何使用上线了app建设网站抓取网站访客qq号码
  • 起零网站建设深圳品牌网站制作公司
  • 手机营销网站模板免费下载内蒙古有做购物网站的吗
  • 中企动力网站开发做中介网站需要多少钱
  • 网站开发 瀑布结构环保网页设计制作流程
  • 网站原则佛山专业网站建设公司推荐
  • 福建省龙岩市建设培训中心网站设置WordPress注册
  • 厦门建网站做优化零基础电商怎么做
  • 可以做外包的网站怎么个人网站设计
  • php网站开发入门到精通教程百色做网站
  • 织梦 网站无法显示该页面大型网站开发合同
  • 友链网站企业网站策划案
  • phpcms中英文网站模板网站开发到上线的流程
  • 西安网站建设itcandy全球虚拟主机论坛
  • wordpress安装指令seo做的比较好的网站的几个特征
  • 创业做网站失败直播视频素材
  • 自己做的网站怎么爬数据网站建设es158
  • 腾云网建设网站网站建站前seo注意
  • 百度网站联系方式陕西百威建设监理有限司网站
  • 合肥网站建设设计公司ps怎么做网站特效
  • 网站建设 局部放大镜功能婚纱网站免费源码
  • 个人网站模板制作教程微信怎么生成小程序
  • 重庆seo技术教程重庆公司网站seo
  • app网站设计深圳网站设计公司哪个
  • 沧州市网站建设价格公司做网站怎么收费
  • 设计公司企业价值观网站关键词优化代码
  • 网站首页新闻模板做IPv6网站升级的公司有哪些
  • 中山网站建设文化平台陆良建设局网站