鸿蒙开发(NEXT/API 12)【使用head发送网络请求 (C/C++)】远场通信服务

news/2024/9/24 5:29:13/

场景介绍

发送一个带有默认HTTP参数的HTTP HEAD请求,并返回来自服务器的HTTP响应。使用异步回调。类似GET请求,但只返回相应头,不返回实体内容。可以获取资源的元信息,如文件大小、修改日期等。

使用示例

  1. CPP侧导入模块。

    #include "RemoteCommunicationKit/rcp.h"#include <stdio.h>#include <unistd.h>
    
  2. CMakeLists.txt中添加以下lib。

    librcp_c.so
    
  3. 创建会话,会话发起head请求。 请根据实际情况替换为想要请求的URL地址。等待响应返回后,销毁request并关闭session。

void ResponseCallback(void *usrCtx, Rcp_Response *response, uint32_t errCode)
{(void *)usrCtx;if (response != NULL) {printf("Response status: %d\n", response->statusCode);} else {printf("Fetch failed: errCode: %u\n", errCode);}// 注意清理响应if (response != NULL) {response->destroyResponse(response);}
}
bool g_callback = false;int main() {const char *kHttpServerAddress = "http://www.example.com/head";Rcp_Request *request = HMS_Rcp_CreateRequest(kHttpServerAddress);request->method = RCP_METHOD_HEAD;uint32_t errCode = 0;// 创建sessionRcp_Session *session = HMS_Rcp_CreateSession(NULL, &errCode);// 配置请求回调Rcp_ResponseCallbackObject responseCallback = {ResponseCallback, NULL};// 发起fetch请求errCode = HMS_Rcp_Fetch(session, request, &responseCallback);// 等待fetch结果int timeout = 100;while (timeout-- > 0 && !g_callback) {usleep(1000);}// 在退出前取消可能还在执行的requests errCode = HMS_Rcp_CancelSession(session);// 清理requestHMS_Rcp_DestroyRequest(request);// 关闭sessionerrCode = HMS_Rcp_CloseSession(&session);// 处理errCode
}

http://www.ppmy.cn/news/1529665.html

相关文章

Python3网络爬虫开发实战(16)分布式爬虫(第一版)

文章目录 一、分布式爬虫原理1.1 分布式爬虫架构1.2 维护爬取队列1.3 怎样来去重1.4 防止中断1.5 架构实现 二、Scrapy-Redis 源码解析2.1 获取源码2.2 爬取队列2.3 去重过滤2.4 调度器 三、Scrapy 分布式实现3.1 准备工作3.2 搭建 Redis 服务器3.3 部署代理池和 Cookies 池3.4…

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【LMS调测】

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 持续更新中…… 基本概念 LMS全称为Lite Memory Sanitizer&#xff0c;是一种实时…

OpenAI GPT-3 API: What is the difference between davinci and text-davinci-003?

题意&#xff1a;OpenAI GPT-3 API&#xff1a;davinci 和 text-davinci-003 有什么区别 问题背景&#xff1a; Im testing the different models for OpenAI, and I noticed that not all of them are developed or trained enough to give a reliable response. 我正在测试…

解决Vue 3中Element Plus el-color-picker 组件消失的问题

概述 在使用Vue 3和Element Plus框架构建应用程序时&#xff0c;你可能会遇到el-color-picker组件无法正常显示的情况。这可能是由于多种原因造成的&#xff0c;包括但不限于CSS加载问题、JavaScript错误、版本兼容性等。本文将指导你如何排查并解决这个问题。 在 el-color-p…

STM32——输入捕获

输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32的定时器&#xff0c;除了TIM6、TIM7&#xff0c;其他的定时器都有输入捕获的功能。应用场景是编码器。 测量频率 当捕获通道TIx 上出现上升沿时&#xff0c;发生第一次捕获&#xff0c;计数器CNT 的值会被锁存到捕获寄存…

JIT(Just-In-Time Compilation)编译器及其原理实现

什么是JIT编译器&#xff1f; JIT编译器是一种特殊的编译器&#xff0c;它在程序运行期间动态地将字节码&#xff08;Bytecode&#xff09;转换为机器码。这种转换发生在程序执行时&#xff0c;而不是在程序启动之前。JIT编译器的主要目的是提高程序的执行速度和效率&#xff…

AOT源码解析4.1-model主体解析

1 输入数据 VOS的数据集处理操作可见数据集操作&#xff0c;这里是进行数据集提取完毕后的操作。 图2&#xff1a;如图所示&#xff0c;使用datasets提取出数据之后&#xff0c;在模型训练阶段对数据做图中操作。即&#xff1a;将batch_size大小的ref_imgs、prev_imgs&#x…

洛谷-P3916 图的遍历

题目描述 给出 N 个点&#xff0c;M 条边的有向图&#xff0c;对于每个点 v&#xff0c;求A(v) 表示从点 v 出发&#xff0c;能到达编号最大的点。 思路 既然是要找到最大的点&#xff0c;那么我从最大的点开始DFS是否可以&#xff1f; 于是可以反向建图&#xff0c;然后从最…