RMVL  2.3.0
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到

提供跨平台的同步异步 Socket 通信、HTTP 请求、HTTP Web 后端框架功能 更多...

网络通信 的协作图:

概念

concept  rm::IpProtocol
 IP 协议
 
concept  rm::LocalProtocol
 本地协议
 

struct  rm::URLParseInfo
 URL 解析结果 更多...
 
struct  rm::Request
 HTTP 请求 更多...
 
struct  rm::Response
 HTTP 响应 更多...
 
class  rm::async::Webapp
 Web 应用程序框架 更多...
 
struct  rm::ipc
 进程间通信协议族 更多...
 
struct  rm::ip
 IP 协议族 更多...
 
class  rm::Endpoint
 端点 更多...
 
class  rm::Socket
 Socket 会话层 更多...
 
class  rm::Acceptor
 Socket 接受器 更多...
 
class  rm::Connector
 Socket 连接器 更多...
 
class  rm::async::Socket
 Socket 异步会话层 更多...
 
class  rm::async::Acceptor
 异步 Socket 接受器 更多...
 
class  rm::async::Connector
 异步 Socket 连接器 更多...
 

类型定义

using rm::ResponseMiddleware = std::function<void(Response &)>
 响应中间件类型
 
using rm::SocketFd = int
 

枚举

enum class  rm::HTTPMethod : uint8_t {
  rm::HTTPMethod::Get , rm::HTTPMethod::Post , rm::HTTPMethod::Put , rm::HTTPMethod::Delete ,
  rm::HTTPMethod::Patch , rm::HTTPMethod::Head , rm::HTTPMethod::Options , rm::HTTPMethod::Trace ,
  rm::HTTPMethod::Connect , rm::HTTPMethod::Unknown
}
 HTTP 请求方法 更多...
 

函数

URLParseInfo rm::parseURL (std::string_view url)
 解析 URL
 
std::tuple< std::string, bool > rm::parseDNS (std::string_view hostname)
 域名解析
 
void rm::cors (Response &res)
 跨域资源共享 CORS 中间件,为响应添加 CORS 头部信息
 
Response rm::requests::request (HTTPMethod method, std::string_view url, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={}, std::string_view body="")
 发出同步 HTTP 请求
 
Response rm::requests::get (std::string_view url, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={})
 发出同步 GET 请求
 
Response rm::requests::post (std::string_view url, std::string_view body, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={})
 发出同步 POST 请求
 
Response rm::requests::del (std::string_view url, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={})
 发出同步 DELETE 请求
 
Task< Responserm::async::requests::request (IOContext &io_context, HTTPMethod method, std::string_view url, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={}, std::string_view body="")
 发出异步 HTTP 请求
 
Task< Responserm::async::requests::get (IOContext &io_context, std::string_view url, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={})
 发出异步 GET 请求
 
Task< Responserm::async::requests::post (IOContext &io_context, std::string_view url, std::string_view body, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={})
 发出异步 POST 请求
 
Task< Responserm::async::requests::del (IOContext &io_context, std::string_view url, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={})
 发出异步 DELETE 请求
 

变量

constexpr SocketFd rm::INVALID_SOCKET_FD = -1
 

详细描述

提供跨平台的同步异步 Socket 通信、HTTP 请求、HTTP Web 后端框架功能

类型定义说明

◆ ResponseMiddleware

using rm::ResponseMiddleware = std::function<void(Response &)>

#include <rmvl/io/netapp.hpp>

响应中间件类型

◆ SocketFd

using rm::SocketFd = int

#include <rmvl/io/socket.hpp>

枚举类型说明

◆ HTTPMethod

enum class rm::HTTPMethod : uint8_t
strong

#include <rmvl/io/netapp.hpp>

HTTP 请求方法

枚举值
Get 

从服务器获取资源,用于请求数据而不对数据进行更改

Post 

向服务器发送数据,用于提交表单数据或上传文件

Put 

向服务器发送数据,一般用于更新现有资源

Delete 

从服务器删除指定的资源,请求中包含要删除的资源标识符

Patch 

对资源进行部分修改,与 Put 类似,但 Patch 只更改部分数据而不是替换整个资源

Head 

类似于 Get,但服务器只返回响应的头部,不返回实际数据,常用于检查资源的元数据

Options 

返回服务器支持的 HTTP 方法

Trace 

回显服务器收到的请求,主要用于诊断

Connect 

建立一个到服务器的隧道,通常用于 HTTPS 连接

Unknown 

未知方法

函数说明

◆ cors()

void rm::cors ( Response & res)

#include <rmvl/io/netapp.hpp>

跨域资源共享 CORS 中间件,为响应添加 CORS 头部信息

// 直接操作 Response 对象
cors(res);
// 或在 Web 应用程序框架中使用
auto app = async::Webapp(io_context);
app.use(cors);
Web 应用程序框架
定义 netapp.hpp:325
void cors(Response &res)
跨域资源共享 CORS 中间件,为响应添加 CORS 头部信息

◆ del() [1/2]

Task< Response > rm::async::requests::del ( IOContext & io_context,
std::string_view url,
const std::vector< std::string > & querys = {},
const std::unordered_map< std::string, std::string > & heads = {} )
inline

#include <rmvl/io/netapp.hpp>

发出异步 DELETE 请求

参数
[in]io_context异步 I/O 执行上下文
[in]url请求的 URL
[in]querys可选的 URL 参数列表
[in]heads可选的请求头列表
返回
rm::async::Task<Response>

◆ del() [2/2]

Response rm::requests::del ( std::string_view url,
const std::vector< std::string > & querys = {},
const std::unordered_map< std::string, std::string > & heads = {} )
inline

#include <rmvl/io/netapp.hpp>

发出同步 DELETE 请求

参数
[in]url请求的 URL
[in]querys可选的 URL 参数列表
[in]heads可选的请求头列表
返回
Response 响应报文

◆ get() [1/2]

Task< Response > rm::async::requests::get ( IOContext & io_context,
std::string_view url,
const std::vector< std::string > & querys = {},
const std::unordered_map< std::string, std::string > & heads = {} )
inline

#include <rmvl/io/netapp.hpp>

发出异步 GET 请求

参数
[in]io_context异步 I/O 执行上下文
[in]url请求的 URL
[in]querys可选的 URL 参数列表
[in]heads可选的请求头列表
返回
rm::async::Task<Response>

◆ get() [2/2]

Response rm::requests::get ( std::string_view url,
const std::vector< std::string > & querys = {},
const std::unordered_map< std::string, std::string > & heads = {} )
inline

#include <rmvl/io/netapp.hpp>

发出同步 GET 请求

参数
[in]url请求的 URL
[in]querys可选的 URL 参数列表
[in]heads可选的请求头列表
返回
Response 响应报文

◆ parseDNS()

std::tuple< std::string, bool > rm::parseDNS ( std::string_view hostname)

#include <rmvl/io/netapp.hpp>

域名解析

参数
[in]hostname域名
返回值
ipIP 地址
isv6是否为 IPv6 地址

◆ parseURL()

URLParseInfo rm::parseURL ( std::string_view url)

#include <rmvl/io/netapp.hpp>

解析 URL

参数
[in]url统一资源定位符,例如 http://example.com:8080/path
返回值
scheme协议部分,例如 httphttps
hostname域名部分,例如 example.com
port端口号,默认为 80 (HTTP) 或 443 (HTTPS)
path路径部分,例如 /path/to/resource
querysstd::vector 存储的查询参数部分,例如 [key=value, key2=value2]

◆ post() [1/2]

Task< Response > rm::async::requests::post ( IOContext & io_context,
std::string_view url,
std::string_view body,
const std::vector< std::string > & querys = {},
const std::unordered_map< std::string, std::string > & heads = {} )
inline

#include <rmvl/io/netapp.hpp>

发出异步 POST 请求

参数
[in]io_context异步 I/O 执行上下文
[in]url请求的 URL
[in]body请求体
[in]querys可选的 URL 参数列表
[in]heads可选的请求头列表
返回
rm::async::Task<Response>

◆ post() [2/2]

Response rm::requests::post ( std::string_view url,
std::string_view body,
const std::vector< std::string > & querys = {},
const std::unordered_map< std::string, std::string > & heads = {} )
inline

#include <rmvl/io/netapp.hpp>

发出同步 POST 请求

参数
[in]url请求的 URL
[in]body请求体
[in]querys可选的 URL 参数列表
[in]heads可选的请求头列表
返回
Response 响应报文

◆ request() [1/2]

Task< Response > rm::async::requests::request ( IOContext & io_context,
HTTPMethod method,
std::string_view url,
const std::vector< std::string > & querys = {},
const std::unordered_map< std::string, std::string > & heads = {},
std::string_view body = "" )

#include <rmvl/io/netapp.hpp>

发出异步 HTTP 请求

参数
[in]io_context异步 I/O 执行上下文
[in]method请求方法
[in]url请求的 URL
[in]querys可选的 URL 参数列表
[in]heads可选的请求头列表
[in]body可选的请求体
返回
响应报文的异步任务

◆ request() [2/2]

Response rm::requests::request ( HTTPMethod method,
std::string_view url,
const std::vector< std::string > & querys = {},
const std::unordered_map< std::string, std::string > & heads = {},
std::string_view body = "" )

#include <rmvl/io/netapp.hpp>

发出同步 HTTP 请求

参数
[in]method请求方法
[in]url请求的 URL
[in]querys可选的 URL 查询参数列表
[in]heads可选的请求头列表
[in]body可选的请求体
返回
响应报文

变量说明

◆ INVALID_SOCKET_FD

SocketFd rm::INVALID_SOCKET_FD = -1
constexpr

#include <rmvl/io/socket.hpp>