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

原文地址:https://www.cnblogs.com/babosa/p/11123991.html