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

建设五证在那个网站可以查您身边的网站建设顾问

建设五证在那个网站可以查,您身边的网站建设顾问,网站优化团队,网络网站是多少钱一年基于GLib和libsoup的简单Web服务器示例#xff0c;它可以处理静态HTML文件和动态JSON请求#xff0c;并展示如何获取URL参数。 步骤#xff1a; 初始化GLib和libsoup。创建一个处理静态HTML文件的处理器。创建一个处理动态JSON请求的处理器。获取URL参数并在JSON响应中返回…基于GLib和libsoup的简单Web服务器示例它可以处理静态HTML文件和动态JSON请求并展示如何获取URL参数。 步骤 初始化GLib和libsoup。创建一个处理静态HTML文件的处理器。创建一个处理动态JSON请求的处理器。获取URL参数并在JSON响应中返回。 代码 #include libsoup/soup.h #include glib.h// 处理静态HTML文件请求 static void handle_static_html(SoupServer *server, SoupMessage *msg, const char *path, GHashTable *query, SoupClientContext *client, gpointer user_data) {SoupMessageHeaders *response_headers msg-response_headers;soup_message_headers_set_content_type(response_headers, text/html, NULL);// 读取静态HTML文件GError *error NULL;gchar *content NULL;g_file_get_contents(/path/to/static.html, content, NULL, error);if (error) {soup_message_set_status(msg, SOUP_STATUS_INTERNAL_SERVER_ERROR);soup_message_body_append(msg-response_body, SOUP_MEMORY_COPY, Internal Server Error, 21);g_error_free(error);} else {soup_message_set_status(msg, SOUP_STATUS_OK);soup_message_body_append(msg-response_body, SOUP_MEMORY_COPY, content, strlen(content));g_free(content);}soup_message_body_complete(msg-response_body); }// 处理动态JSON请求 static void handle_dynamic_json(SoupServer *server, SoupMessage *msg, const char *path, GHashTable *query, SoupClientContext *client, gpointer user_data) {SoupMessageHeaders *response_headers msg-response_headers;soup_message_headers_set_content_type(response_headers, application/json, NULL);// 获取URL参数const char *name g_hash_table_lookup(query, name);if (!name) {name World;}// 创建JSON响应gchar *response g_strdup_printf({\message\: \Hello, %s!\}, name);soup_message_set_status(msg, SOUP_STATUS_OK);soup_message_body_append(msg-response_body, SOUP_MEMORY_COPY, response, strlen(response));g_free(response);soup_message_body_complete(msg-response_body); }int main(int argc, char *argv[]) {GMainLoop *loop g_main_loop_new(NULL, FALSE);SoupServer *server soup_server_new(SOUP_SERVER_SERVER_HEADER, example-server, NULL);// 添加处理器soup_server_add_handler(server, /static, handle_static_html, NULL, NULL);soup_server_add_handler(server, /dynamic, handle_dynamic_json, NULL, NULL);// 监听端口soup_server_listen_all(server, 8080, 0, NULL);g_print(Server running on http://localhost:8080\n);g_main_loop_run(loop);// 清理g_object_unref(server);g_main_loop_unref(loop);return 0; }编译和运行 确保安装了glib和libsoup库。使用以下命令编译代码gcc -o webserver webserver.c pkg-config --cflags --libs glib-2.0 libsoup-2.4运行生成的可执行文件./webserver这个示例展示了如何使用libsoup创建一个简单的Web服务器处理静态HTML文件和动态JSON请求并获取URL参数。你可以根据需要扩展和修改这个示例。 soup_message_body_append 函数 GitHub Copilot: 在libsoup中soup_message_body_append函数用于将数据添加到SoupMessageBody中。该函数的第二个参数是一个枚举类型用于指定如何处理传入的数据。这个枚举类型是SoupMemoryUse它定义了几种不同的内存管理策略。 SoupMemoryUse 枚举类型 以下是SoupMemoryUse枚举类型的几种常见值及其含义 SOUP_MEMORY_STATIC: 表示传入的数据是静态的不会被修改或释放。适用于常量字符串或全局变量。例子const char *static_data Hello, World!; soup_message_body_append(body, SOUP_MEMORY_STATIC, static_data, strlen(static_data));SOUP_MEMORY_TEMPORARY: 表示传入的数据是临时的libsoup会在内部复制一份。适用于临时变量或局部变量。例子char temp_data[] Temporary Data; soup_message_body_append(body, SOUP_MEMORY_TEMPORARY, temp_data, strlen(temp_data));SOUP_MEMORY_COPY: 表示传入的数据需要被复制libsoup会创建一份新的副本。适用于需要确保数据独立于原始数据的情况。例子char *dynamic_data g_strdup(Dynamic Data); soup_message_body_append(body, SOUP_MEMORY_COPY, dynamic_data, strlen(dynamic_data)); g_free(dynamic_data); // 原始数据可以安全释放SOUP_MEMORY_TAKE: 表示传入的数据的所有权将被libsoup接管libsoup负责释放内存。适用于动态分配的内存且不再需要手动管理内存释放。例子char *dynamic_data g_strdup(Dynamic Data); soup_message_body_append(body, SOUP_MEMORY_TAKE, dynamic_data, strlen(dynamic_data)); // 不需要手动释放 dynamic_datalibsoup 会负责示例代码 以下是一个使用SoupMemoryUse枚举类型的示例代码 #include libsoup/soup.h #include glib.hint main() {SoupMessageBody *body soup_message_body_new();// 使用 SOUP_MEMORY_STATICconst char *static_data Static Data;soup_message_body_append(body, SOUP_MEMORY_STATIC, static_data, strlen(static_data));// 使用 SOUP_MEMORY_TEMPORARYchar temp_data[] Temporary Data;soup_message_body_append(body, SOUP_MEMORY_TEMPORARY, temp_data, strlen(temp_data));// 使用 SOUP_MEMORY_COPYchar *dynamic_data_copy g_strdup(Dynamic Data Copy);soup_message_body_append(body, SOUP_MEMORY_COPY, dynamic_data_copy, strlen(dynamic_data_copy));g_free(dynamic_data_copy); // 原始数据可以安全释放// 使用 SOUP_MEMORY_TAKEchar *dynamic_data_take g_strdup(Dynamic Data Take);soup_message_body_append(body, SOUP_MEMORY_TAKE, dynamic_data_take, strlen(dynamic_data_take));// 不需要手动释放 dynamic_data_takelibsoup 会负责// 清理soup_message_body_free(body);return 0; }通过这些枚举值你可以灵活地管理传入数据的内存确保在不同场景下的内存安全和效率。
http://www.hkea.cn/news/14327735/

相关文章:

  • 建站教程视频下载wordpress页面添加自定义字段
  • 广东城乡建设厅网站首页网站制作素材代码
  • 网络营销策略定义win10系统优化工具
  • 中国建设部网站能查叉车证建设模板网站报价
  • 网站视频链接怎么做网络公司经营范围有哪些类型
  • 建立企业网站的形式网站集约建设
  • 怎样用vs做简单网站wordpress淘宝客源码
  • 汕头模版网站建设织梦dedecms医院类网站在线预约挂号插件
  • 14版哥斯拉的官方做的宣传网站网站建设学习内容
  • 网站设计制作托管维护临桂建设局安全股网站
  • 古城做网站的公司太原手手工网站建设公司
  • 常州做网站哪家好emlog 迁移Wordpress
  • 不会代码怎么做网站株洲关键词优化公司
  • 企业建设营销网站的基本步骤有哪些wordpress图床首页无缩略图
  • 推广网站推广网站管理员是干什么的
  • 网站建设竞争对手分析网站建设费用分析
  • 福州网站设计定制公司营销网站建设大概费用
  • 如何在电商网站做市场调研qml 网站开发
  • 融资融券配资网站建设商业软文案例
  • 建网站公建网站公司怎么运用区块链做网站
  • 做特卖网站有什么网站营销型网站案例
  • 做国际网站郑州建设信息网 首页
  • 兵团建设环保局门户网站网站 各种 备案
  • 著名的设计企业网站宿迁做网站需要多少钱
  • 网站网页设计屏幕尺寸好看的网站在哪里好找
  • 青海网站建设公司一诺网络推广公司
  • 建设用地规划许可证查询网站php响应式网站模板下载
  • seo分析网站php软件安装
  • 制作网站需要哪些知识长春网站架设
  • 网站建设维护 天博网络深圳做网站需要多少费用