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

网站建设服务费怎么入账企业网站管理系统 asp

网站建设服务费怎么入账,企业网站管理系统 asp,营销网站建设是什么,网络建设规划方案怎么写ESP-C3入门11. 创建最基本的HTTP请求一、menuconfig配置二、配置 CMakeLists1. 设置项目的额外组件目录2. 设置头文件搜索目录三、在 ESP32 上执行 HTTP 请求的基本步骤1. 创建 TCP 连接2. 设置 HTTP 请求3. 发送 HTTP 请求4. 接收 HTTP 响应5. 处理 HTTP 响应6. 关闭 TCP 连接… ESP-C3入门11. 创建最基本的HTTP请求一、menuconfig配置二、配置 CMakeLists1. 设置项目的额外组件目录2. 设置头文件搜索目录三、在 ESP32 上执行 HTTP 请求的基本步骤1. 创建 TCP 连接2. 设置 HTTP 请求3. 发送 HTTP 请求4. 接收 HTTP 响应5. 处理 HTTP 响应6. 关闭 TCP 连接三、示例1. http_request.h2. http_request.chttp_request_sendesp_http_client_config_t 结构体esp_http_client_init() 函数esp_http_client_perform() 函数esp_http_client_cleanup() 函数官网文档 https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/api-reference/protocols/esp_http_client.html 一、menuconfig配置 打开ESP-IDF 4.4 CMD命令窗口进入项目运行 idf.py menuconfig打开配置窗口 选择 Component config- ESP HTTP client菜单 钩选 保存设置到自己项目 二、配置 CMakeLists 1. 设置项目的额外组件目录 # 设置项目的额外组件目录,允许使用ESP-IDF示例中的公共组件。 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/components)2. 设置头文件搜索目录 CMakeLists.h 中要包含 esp_http_client的头文件位置 # 设置项目的包含目录这些是要搜索头文件的目录 set(INCLUDE_DIRS${INCLUDE_DIRS}${CMAKE_CURRENT_SOURCE_DIR}${IDF_PATH}/components/esp_http_client/include) include_directories(${INCLUDE_DIRS})这样就能使用 esp_http_client了。 三、在 ESP32 上执行 HTTP 请求的基本步骤 在 ESP32 上进行 HTTP 请求需要使用 TCP/IP 套接字和 HTTP 库来实现。 ESP32 IDF的esp_http_client 库提供了一组易于使用的 API可以自动处理 HTTP 头和响应内容。 1. 创建 TCP 连接 使用 tcpip_adapter 和 lwip 库创建一个 TCP 连接。可以使用 lwip 库提供的函数如 tcp_new() 和 tcp_connect()来创建和连接套接字。 2. 设置 HTTP 请求 使用 HTTP 协议创建一个请求消息。请求消息包括 HTTP 方法如 GET、POST 等和请求的 URL以及一些 HTTP 头部如 Content-Type、Content-Length 等和负载数据如果有的话。 3. 发送 HTTP 请求 使用 lwip 库提供的 tcp_write() 函数将请求消息发送到服务器。 4. 接收 HTTP 响应 使用 lwip 库提供的 tcp_recv() 函数从服务器接收响应消息。通常响应消息由一个或多个 TCP 数据包组成因此需要在接收数据时进行缓冲区处理。 5. 处理 HTTP 响应 对响应消息进行处理例如解析响应头、解码响应正文、处理错误码等。 6. 关闭 TCP 连接 使用 lwip 库提供的 tcp_close() 函数关闭 TCP 连接。 三、示例 1. http_request.h #ifndef HTTP_REQUEST_H #define HTTP_REQUEST_H #include esp_http_client.h #define HTTP_URL http://www.example.com esp_err_t http_event_handler(esp_http_client_event_t *evt); void request(const char* url); #endif 2. http_request.c #include esp_err.h #include esp_log.h #include network/include/http_request.hstatic const char *TAG HTTP_REQUEST; #define MAX_HTTP_OUTPUT_BUFFER 2048// HTTP 请求的处理函数 esp_err_t http_event_handler(esp_http_client_event_t *evt) {// 缓存http响应的bufferstatic char *output_buffer;// 已经读取的字节数static int output_len;switch(evt-event_id) {case HTTP_EVENT_ERROR:ESP_LOGD(TAG, HTTP_EVENT_ERROR);break;case HTTP_EVENT_ON_CONNECTED:ESP_LOGD(TAG, HTTP_EVENT_ON_CONNECTED);break;case HTTP_EVENT_HEADER_SENT:ESP_LOGD(TAG, HTTP_EVENT_HEADER_SENT);break;case HTTP_EVENT_ON_HEADER:ESP_LOGD(TAG, HTTP_EVENT_ON_HEADER, key%s, value%s, evt-header_key, evt-header_value);break;case HTTP_EVENT_ON_DATA:ESP_LOGD(TAG, HTTP_EVENT_ON_DATA, len%d, evt-data_len);if (!esp_http_client_is_chunked_response(evt-client)) {// 如果配置了user_data buffer则把响应复制到该buffer中if (evt-user_data) {memcpy(evt-user_data output_len, evt-data, evt-data_len);} else {if (output_buffer NULL) {output_buffer (char *) malloc(esp_http_client_get_content_length(evt-client));output_len 0;if (output_buffer NULL) {ESP_LOGE(TAG, Failed to allocate memory for output buffer);return ESP_FAIL;}}memcpy(output_buffer output_len, evt-data, evt-data_len);}output_len evt-data_len;}break;case HTTP_EVENT_ON_FINISH:ESP_LOGD(TAG, HTTP_EVENT_ON_FINISH);if (output_buffer ! NULL) {// Response is accumulated in output_buffer. Uncomment the below line to print the accumulated response// ESP_LOG_BUFFER_HEX(TAG, output_buffer, output_len);free(output_buffer);output_buffer NULL;}output_len 0;break;case HTTP_EVENT_DISCONNECTED:ESP_LOGI(TAG, HTTP_EVENT_DISCONNECTED);if (output_buffer ! NULL) {free(output_buffer);output_buffer NULL;}output_len 0;break;}return ESP_OK; }void request(const char *url) {// 响应结果放在这里char local_response_buffer[MAX_HTTP_OUTPUT_BUFFER] {0};// 创建一个 HTTP 客户端配置esp_http_client_config_t config {.method HTTP_METHOD_GET,.url url,.event_handler http_event_handler,.user_data local_response_buffer,.disable_auto_redirect true,};// 创建一个 HTTP 客户端并执行 GET 请求esp_http_client_handle_t client esp_http_client_init(config);esp_err_t err esp_http_client_perform(client);// 检查请求是否成功if (err ESP_OK) {int len esp_http_client_get_content_length(client);ESP_LOGI(TAG, Status %d, content_length %d,esp_http_client_get_status_code(client),//状态码len);//数据长度} else {printf(HTTP GET request failed: %s\n, esp_err_to_name(err));}printf(Response: %.*s\n, strlen(local_response_buffer), local_response_buffer);//断开并释放资源esp_http_client_cleanup(client); }主要函数说明 http_request_send 用于发送 HTTP 请求的函数 该函数接受一个 http_request_t 类型的指针作为参数其中包含了 HTTP 请求的 URL、请求方法、请求头以及 POST 数据。在 esp_http_client_config_t 结构体 用于配置 HTTP 客户端的参数包括 URL、请求方法和事件处理函数。然后根据请求中是否包含请求头和 POST 数据来设置 HTTP 客户端的相应参数。 esp_http_client_init() 函数 用来创建一个 HTTP 客户端句柄。 esp_http_client_perform() 函数 发送 HTTP 请求。 esp_http_client_cleanup() 函数 释放 HTTP 客户端句柄。
http://www.dnsts.com.cn/news/133085.html

相关文章:

  • 江华县网站开发个人网站 空间 多少够
  • wordpress网站响应慢浙江省建设厅查询官方网站
  • 网站 建立目录出错wordpress 修改meta
  • 区块链网站开发资金免费进出货管理软件app
  • 大连网站建设怎么做代做道路毕业设计网站
  • 江西网站建设价位软文100字左右案例
  • 江苏建设网站酒店装修合同范本wordpress 电影解析
  • php 网站 服务器织梦做分类信息网站
  • 元气森林的网络营销方式谷歌seo什么意思
  • 网站开发vs2015是什么自助建站申请
  • 网站代码优化多少钱寻亲网站开发设计文档
  • 手游网站建设的宗旨dede企业网站源码
  • 可信网站是什么网络营销的功能是什么
  • 如何进行网站的seo久治县wap网站建设公司
  • 营销型企业网站分互联网公司排名最新
  • 给网站首页图片做外网超链接_为什么会弹出一个服务器登录窗口基础软件开发
  • 深圳深圳龙岗网站建设公司电子政务 和网站建设总结
  • 互联网运营网站黄金网站app免费视频大全
  • 郑州网站建设公司哪家专业好wordpress备份图文文章
  • 网站制作与防护费用龙岗大运做网站的公司
  • 陕西网站建设公司找哪家拟一份饰品网站建设合同
  • 想做淘宝 网站怎么做asp.net实用网站开发
  • 河北省电力建设第一工程公司网站南京网站推广公司
  • 安防网站模板网站设计制作简单实例
  • 男女激烈做羞羞事网站优化营商环境条例心得体会
  • 网站开发人员 生活做淘宝网站要多少钱
  • 有做电动车修车的网站吗网站副标题wordpress
  • 网站开发 只要网站建设维护的方案
  • 网站建设文化市场玉山县建设局的网站
  • 北京住房和城乡建设厅网站首页怎么知道一个网站的权重