EasyDSS RTMP流媒體伺服器的HTTP介面query url的C++實現方法
阿新 • • 發佈:2019-02-20
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