1. 程式人生 > >EasyDSS RTMP流媒體伺服器的HTTP介面query url的C++實現方法

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緩衝、錄影、檢索、回放、錄影下載、網頁管理等多種功能,是目前市面上最合理的一款商用流媒體伺服器!

獲取更多資訊

Copyright © EasyDarwin.org 2012-2017

EasyDarwin