EasyDSS高性能RTMP/FLV/HLS(m3u8)/RTSP流媒体服务器技术的HTTP QueryString URL的C++实现方案

EasyDSS支持HTTP GET接口访问,我们需要获取url的各种参数信息

比如 http://ip:port/action?a=1&b=2&c=3

我们需要知道对应的a、b、c的值

这里我们实现了简单的query url,能满足一般要求

后面会实现一个完善的URI解析类

to_lower 辅助函数,C++中没有 string 的转换大小写函数

inline void to_lower(std::string& str)
{
	for (int i = 0; i <str.size(); i++)
		str[i] = tolower(str[i]);
}

query_url函数,简单实现

std::map<std::string, std::string> query_url(const std::string& url)
{
	std::string keyval, key, val;
	//将参数以std::map的方式返回
	std::map<std::string, std::string> params;
	std::istringstream issUrl(url);
	//从issUrl中使用分隔符`&`提取
	while (std::getline(issUrl, keyval, '&'))
	{
		std::istringstream iss(keyval);
		//再以`=`分隔符获取key和value
		if (std::getline(std::getline(iss, key, '='), val))
		{
			to_lower(key);
			params[key] = val;
		}
	}

	return params;
}

当然,最应该使用的应该是 std::map<string, any>,后续不断改进

关于EasyDSS流媒体服务器

easydss流媒体解决方案是由安徽旭帆信息科技有限公司自主研发的一套集流媒体点播、转码、管理、直播、录像、检索、时移回看于一体的一套完整的商用流媒体解决方案。安徽旭帆信息科技有限公司一直致力于流媒体音视频领域的科技研发,其建立和维护的easydarwin开源项目自2012年起发展至今,凭借多年在流媒体音视频领域的技术经验积累,目前已经发展成为行业技术领先、经验丰富的流媒体研发及技术服务团队。而easydss正是由easydarwin项目的多年积累而全新研发的一套商用的、功能强大的高性能流媒体解决方案。
详情可访问easydss官网:http://www.easydss.com

EasyDSS

posted @   Babosa|EasyDarwin  阅读(348)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示