具体API说明详见接口文档。
| 接口名 | 描述 |
|---|---|
| Rcp_Response *HMS_Rcp_FetchSync(Rcp_Session *session, Rcp_Request *request, uint32_t *errCode); | 发送HTTP请求,并直接返回来自服务器的HTTP响应。 |
CPP侧导入模块。
#include "RemoteCommunicationKit/rcp.h" #include <cstdlib> #include <cstring> #include <cstdio> #include <thread>
CMakeLists.txt中添加以下lib。(具体请见C API开发准备)。
librcp_c.so
创建Request对象。"https://www.example.com"请根据实际情况替换为想要请求的URL地址。(实际使用时请将该代码块放入main函数或者其他函数区域内)。
const char *kHttpServerAddress = "https://www.example.com"; Rcp_Request *request = HMS_Rcp_CreateRequest(kHttpServerAddress);
创建会话。(实际使用时请将该代码块放入main函数或者其他函数区域内)。
uint32_t errCode = 0; Rcp_Session *session = HMS_Rcp_CreateSession(NULL, &errCode);
发起请求,并处理返回结果。(实际使用时请将该代码块放入main函数或者其他函数区域内)。
Rcp_Response *response = HMS_Rcp_FetchSync(session, request, &errCode);
if (response != NULL) {
printf("Response status: %d\n", response->statusCode);
// ...
} else {
printf("FetchSync failed: errCode: %u\n", errCode);
// ...
} 清理response响应和request请求。最后关闭session。(实际使用时请将该代码块放入main函数或者其他函数区域内)。
// 清理request
HMS_Rcp_DestroyRequest(request);
// 处理response,并清理response
if (response != NULL) {
response->destroyResponse(response);
}
// 关闭session
errCode = HMS_Rcp_CloseSession(&session);
// 处理errCode 具体API说明详见接口文档。
| 接口名 | 描述 |
|---|---|
| uint32_t HMS_Rcp_Fetch(Rcp_Session *session, Rcp_Request *request, const Rcp_ResponseCallbackObject *responseCallback); | 发送HTTP请求,并返回来自服务器的HTTP响应。使用responseCallback异步回调。 |
CPP侧导入模块。
#include "RemoteCommunicationKit/rcp.h" #include <cstdlib> #include <cstring> #include <cstdio> #include <thread>
CMakeLists.txt中添加以下lib。(具体请见C API开发准备)。
librcp_c.so
创建会话,会话发起Fetch请求。“https://www.example.com”请根据实际情况替换为想要请求的URL地址。等待响应返回后,销毁request并关闭session。
// 创建request
const char *kHttpServerAddress = "https://www.example.com";
Rcp_Request *request = HMS_Rcp_CreateRequest(kHttpServerAddress);
ctx->request = request;
uint32_t errCode = 0;
// 创建session
Rcp_Session *session = HMS_Rcp_CreateSession(NULL, &errCode);
ctx->session = session;
// 请求配置
Rcp_Configuration config;
// 初始化配置参数
(void)memset(&config, 0, sizeof(Rcp_Configuration));
// 重新设置自动重定向
config.transferConfiguration.autoRedirect = true;
// 重新设置请求超时配置参数
config.transferConfiguration.timeout.transferMs = 1000 * 10;
config.transferConfiguration.timeout.connectMs = 1000 * 10;
request->method = RCP_METHOD_GET;
request->configuration = &config;
// 配置请求回调
Rcp_ResponseCallbackObject responseCallback = {ResponseCallback, ctx};
// 发起请求
errCode = HMS_Rcp_Fetch(session, request, &responseCallback); CPP侧导入模块。
#include "RemoteCommunicationKit/rcp.h" #include <cstdlib> #include <cstring> #include <cstdio> #include <thread>
CMakeLists.txt中添加以下lib。(具体请见C API开发准备)。
librcp_c.so
创建会话,会话发起get请求。“https://www.example.com”请根据实际情况替换为想要请求的URL地址。等待响应返回后,销毁request并关闭session。
const char *kHttpServerAddress = "https://www.example.com";
// 请求配置
Rcp_Configuration config;
// 初始化配置参数
(void)memset(&config, 0, sizeof(Rcp_Configuration));
// 重新设置自动重定向
config.transferConfiguration.autoRedirect = true;
// 重新设置请求超时配置参数
config.transferConfiguration.timeout.transferMs = 1000 * 10;
config.transferConfiguration.timeout.connectMs = 1000 * 10;
Rcp_Request *request = HMS_Rcp_CreateRequest(kHttpServerAddress);
ctx->request = request;
request->method = RCP_METHOD_GET;
request->configuration = &config;
uint32_t errCode = 0;
// 创建session
Rcp_Session *session = HMS_Rcp_CreateSession(NULL, &errCode);
ctx->session = session;
// 配置请求回调
Rcp_ResponseCallbackObject responseCallback = {ResponseCallback, ctx};
// 发起请求
errCode = HMS_Rcp_Fetch(session, request, &responseCallback); 发送带有默认HTTP参数的HTTP POST请求,并返回来自服务器的HTTP响应。使用异步回调。常用于向服务器提交数据。与GET请求不同,POST请求将参数包含在请求主体中,适用于创建新资源、提交表单数据或执行某些操作。
CPP侧导入模块。
#include "RemoteCommunicationKit/rcp.h" #include <cstdlib> #include <cstring> #include <cstdio> #include <thread>
CMakeLists.txt中添加以下lib。(具体请见C API开发准备)。
librcp_c.so
创建会话,会话发起post请求。“https://www.example.com”请根据实际情况替换为想要请求的URL地址。等待响应返回后,销毁request并关闭session。
// 创建request
const char *kHttpServerAddress = "http://www.example.com";
const char *content = "content";
Rcp_Request *request = HMS_Rcp_CreateRequest(kHttpServerAddress);
// 设置request参数
request->method = RCP_METHOD_POST;
request->content = (Rcp_RequestContent *)calloc(1, sizeof(Rcp_RequestContent));
request->content->type = RCP_CONTENT_TYPE_STRING;
request->content->data.contentStr.buffer = content;
request->content->data.contentStr.length = strlen(content);
ctx->request = request;
// 请求配置
Rcp_Configuration config;
// 初始化配置参数
(void)memset(&config, 0, sizeof(Rcp_Configuration));
// 重新设置自动重定向
config.transferConfiguration.autoRedirect = true;
// 重新设置请求超时配置参数
config.transferConfiguration.timeout.transferMs = 1000 * 10;
config.transferConfiguration.timeout.connectMs = 1000 * 10;
request->configuration = &config;
uint32_t errCode = 0;
// 创建session
Rcp_Session *session = HMS_Rcp_CreateSession(NULL, &errCode);
ctx->session = session;
// 配置请求回调
Rcp_ResponseCallbackObject responseCallback = {ResponseCallback, ctx};
// 发起请求
errCode = HMS_Rcp_Fetch(session, request, &responseCallback); 发送带有默认HTTP参数的HTTP PUT请求,并返回来自服务器的HTTP响应。使用异步回调。常用于向服务器更新资源。PUT请求将更新的数据发送到特定的URL,用于替换指定资源的全部内容。
CPP侧导入模块。
#include "RemoteCommunicationKit/rcp.h" #include <cstdlib> #include <cstring> #include <cstdio> #include <thread>
CMakeLists.txt中添加以下lib。(具体请见C API开发准备)。
librcp_c.so
创建会话,会话发起put请求。“https://www.example.com”请根据实际情况替换为想要请求的URL地址。等待响应返回后,销毁request并关闭session。
const char *kHttpServerAddress = "http://www.example.com";
const char *content = "content";
// 创建request,并设置request的参数
Rcp_Request *request = HMS_Rcp_CreateRequest(kHttpServerAddress);
request->method = RCP_METHOD_PUT;
request->content = (Rcp_RequestContent *)calloc(1, sizeof(Rcp_RequestContent));
request->content->type = RCP_CONTENT_TYPE_STRING;
request->content->data.contentStr.buffer = content;
request->content->data.contentStr.length = strlen(content);
ctx->request = request;
// 请求配置
Rcp_Configuration config;
// 初始化配置参数
(void)memset(&config, 0, sizeof(Rcp_Configuration));
// 重新设置自动重定向
config.transferConfiguration.autoRedirect = true;
// 重新设置请求超时配置参数
config.transferConfiguration.timeout.transferMs = 1000 * 10;
config.transferConfiguration.timeout.connectMs = 1000 * 10;
request->configuration = &config;
uint32_t errCode = 0;
// 创建session
Rcp_Session *session = HMS_Rcp_CreateSession(NULL, &errCode);
ctx->session = session;
// 配置请求回调
Rcp_ResponseCallbackObject responseCallback = {ResponseCallback, ctx};
// 发起fetch请求
errCode = HMS_Rcp_Fetch(session, request, &responseCallback); 发送带有默认HTTP参数的HTTP HEAD请求,并返回来自服务器的HTTP响应。使用异步回调。类似GET请求,但只返回响应头,不返回实体内容。可以获取资源的元信息,如文件大小、修改日期等。
CPP侧导入模块。
#include "RemoteCommunicationKit/rcp.h" #include <cstdlib> #include <cstring> #include <cstdio> #include <thread>
CMakeLists.txt中添加以下lib。(具体请见C API开发准备)。
librcp_c.so
创建会话,会话发起head请求。“https://www.example.com”请根据实际情况替换为想要请求的URL地址。等待响应返回后,销毁request并关闭session。
const char *kHttpServerAddress = "http://www.example.com/head";
Rcp_Request *request = HMS_Rcp_CreateRequest(kHttpServerAddress);
request->method = RCP_METHOD_HEAD;
// 请求配置
Rcp_Configuration config;
// 初始化配置参数
(void)memset(&config, 0, sizeof(Rcp_Configuration));
// 重新设置自动重定向
config.transferConfiguration.autoRedirect = true;
// 重新设置请求超时配置参数
config.transferConfiguration.timeout.transferMs = 1000 * 10;
config.transferConfiguration.timeout.connectMs = 1000 * 10;
request->configuration = &config;
ctx->request = request;
uint32_t errCode = 0;
// 创建session
Rcp_Session *session = HMS_Rcp_CreateSession(NULL, &errCode);
ctx->session = session;
// 配置请求回调
Rcp_ResponseCallbackObject responseCallback = {ResponseCallback, ctx};
// 发起fetch请求
errCode = HMS_Rcp_Fetch(session, request, &responseCallback); 发送带有默认HTTP参数的HTTP DELETE请求,并返回来自服务器的HTTP响应,用于从服务器删除资源,通过向指定URL发送DELETE请求,可以删除该URL上对应的资源。使用异步回调。
CPP侧导入模块。
#include "RemoteCommunicationKit/rcp.h" #include <cstdlib> #include <cstring> #include <cstdio> #include <thread>
CMakeLists.txt中添加以下lib。(具体请见C API开发准备)。
librcp_c.so
创建会话,会话发起delete请求。“https://www.example.com”请根据实际情况替换为想要请求的URL地址。等待响应返回后,销毁request并关闭session。
const char *kHttpServerAddress = "http://www.example.com/delete";
Rcp_Request *request = HMS_Rcp_CreateRequest(kHttpServerAddress);
request->method = RCP_METHOD_DELETE;
// 请求配置
Rcp_Configuration config;
// 初始化配置参数
(void)memset(&config, 0, sizeof(Rcp_Configuration));
// 重新设置自动重定向
config.transferConfiguration.autoRedirect = true;
// 重新设置请求超时配置参数
config.transferConfiguration.timeout.transferMs = 1000 * 10;
config.transferConfiguration.timeout.connectMs = 1000 * 10;
request->configuration = &config;
ctx->request = request;
uint32_t errCode = 0;
// 创建session
Rcp_Session *session = HMS_Rcp_CreateSession(NULL, &errCode);
ctx->session = session;
// 配置请求回调
Rcp_ResponseCallbackObject responseCallback = {ResponseCallback, ctx};
// 发起fetch请求
errCode = HMS_Rcp_Fetch(session, request, &responseCallback);