• 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

  • 相关阅读:
    在一个很长的字符串中搜索自定义字符串的问题(通过多线程实现)
    老鼠走迷宫
    js控制父子页面传值(iframe和window.open)
    C#后台跳转
    CSS小技巧-图片自动缩放
    js中去除换行( )
    js去除首尾空格
    JQuery隔行变色
    Web开发在线工具
    JQuery标签去重与数组去重
  • 原文地址:https://www.cnblogs.com/babosa/p/11123991.html
Copyright © 2020-2023  润新知