EasyDSS RTMP流媒体服务器的HTTP接口query 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

关于EasyDSS流媒体服务器

EasyDSS商用流媒体服务器解决方案是一套集流媒体点播、转码与管理、直播、录像、检索、时移回看于一体的一套完整的商用流媒体服务器解决方案,EasyDSS高性能RTMP流媒体服务器支持RTMP推流,同步输出HTTP、RTMP、HLS、HTTP-FLV,支持推流分发/拉流分发,支持秒开、GOP缓冲、录像、检索、回放、录像下载、网页管理等多种功能,是目前市面上最合理的一款商用流媒体服务器!

详细说明:http://www.easydss.com/

点击链接加入群【EasyDSS流媒体服务器】:560148162

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

EasyDarwin

posted @ 2017-10-20 23:41  Babosa  阅读(194)  评论(0编辑  收藏  举报