应用场景比较鸡肋:需要在广电网络环境下(播放视频貌似只能在广电内网,实时图片内外网则都可以显示)。
用自己笨拙的LUA写了个脚本:
local file = io.open("request.xml", "r")
local request_body = file:read("*a")
file:close()
local http=require("socket.http");
local response_body = {}
local res, code, response_headers, status= http.request{
url = "http://portal.rifestone.com:9090/PortalServer-App/services/PortalServer4Client",
method = "POST",
headers =
{
["Content-Type"] = "text/xml; charset=utf-8";
["Connection"] = "keep-alive";
["SOAPAction"] = "http://webservice.tvstore.sumavision.com/doRequest";
["Accept"] = "*/*";
["User-Agent"] = "wsdl2objc";
["Content-Length"] = #request_body;
["Accept-Language"] = "zh-cn";
["Accept-Encoding"] = "gzip, deflate";
},
source = ltn12.source.string(request_body),
sink = ltn12.sink.table(response_body),
}
--print(res)
--print(code)
--print(status)
--[[
if type(response_headers) == "table" then
for k, v in pairs(response_headers) do
print(k, v)
end
end
]]
--print("Response body:")
--[[
if type(response_body) == "table" then
print(table.concat(response_body))
else
print("Not a table:", type(response_body))
end
]]
local data = table.concat(response_body)
local json = string.gsub(data, """, "\"")
print(string.sub(json, 168, string.len(json) - 62))
post数据:
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:PortalServer4ClientImplServiceSvc="http://webservice.tvstore.sumavision.com/" xsl:version="1.0">
<soap:Body>
<PortalServer4ClientImplServiceSvc:doRequest>
<arg0>{
"locationName" : "",
"version" : "030101",
"parameters" : {
"programName" : "",
"sortType" : "2",
"end" : "1000",
"channelName" : "",
"channelType" : "0",
"start" : "0"
},
"serialNumber" : "",
"type" : "3",
"location" : "3",
"serverAddress" : "http:\/\/portal.rifestone.com:9090\/PortalServer-App\/services\/PortalServer4Client",
"token" : "dbVtbY5dhzwLS3VBRK2zTQ==",
"sessionId" : "",
"ssid" : "",
"useWifi" : "true",
"user" : "",
"method" : "getChannelInfoListCoke"
}</arg0>
</PortalServer4ClientImplServiceSvc:doRequest>
</soap:Body>
</soap:Envelope>
返回(JSON):
{
"method": "getChannelInfoListCoke",
"status": "0",
"errorMessage": "",
"data": {
"channelInfos": [{
"programNumber": "1",
"charges": "0",
"channelName": "CCTV-1综合高清",
"channelType": [8,
22],
"modulation": "64QAM",
"channelUrl": [{
"d21b138fa38a4fbcb2586a4997ad90bf": "http://10.255.134.15:8060/live/10001_800.m3u8"
},
{
"ed2139d0876f4fe98a4c40606bc65b04": "http://10.255.134.15:8060/live/10001_1200.m3u8"
},
{
"9926c64bda4c4e169dcf6caacf3a04bc": "http://10.255.134.15:8060/live/10001_2000.m3u8"
}],
"imageUrl": [{
"2f3e6f294ba24ecb9273112fe85b513e": "http://10.255.134.8:8082/channelPoster/1_300x200_1449299829541.png?updateTime=20160603171043"
}],
"networkID": "0",
"hdFlag": "0",
"channelID": "22",
"freq": "159",
"timeshiftUrl": [],
"audioPID": "101",
"chaID": "22@_@6",
"channelDes": "",
"otherInfo": "",
"symbolRate": "6875",
"videoPID": "201",
"rank": "5.5625",
"tsID": "0",
"serviceID": 1,
"liveRealImg": "http://10.255.134.8:8082/channelSefPic/22.jpg",
"onetID": "0"
},
{
"programNumber": "2",
"charges": "0",
"channelName": "CCTV-2经济高清",
"channelType": [8,
22],
"modulation": "64QAM",
"channelUrl": [{
"d21b138fa38a4fbcb2586a4997ad90bf": "http://10.255.134.15:8060/live/10002_800.m3u8"
},
{
"ed2139d0876f4fe98a4c40606bc65b04": "http://10.255.134.15:8060/live/10002_1200.m3u8"
},
{
"9926c64bda4c4e169dcf6caacf3a04bc": "http://10.255.134.15:8060/live/10002_2000.m3u8"
}],
"imageUrl": [{
"2f3e6f294ba24ecb9273112fe85b513e": "http://10.255.134.8:8082/channelPoster/2_300x200_1449299815051.png?updateTime=20160603171043"
}],
"networkID": "0",
"hdFlag": "0",
"channelID": "24",
"freq": "159",
"timeshiftUrl": [],
"audioPID": "102",
"chaID": "24@_@6",
"channelDes": "",
"otherInfo": "",
"symbolRate": "6875",
"videoPID": "202",
"rank": "5.823529411764706",
"tsID": "0",
"serviceID": 2,
"liveRealImg": "http://10.255.134.8:8082/channelSefPic/24.jpg",
"onetID": "0"
},
10.255.134.8对应外网地址为:pic.rifestone.com (222.206.159.138)
所以
http://10.255.134.8:8082/channelSefPic/22.jpg
对应于:http://pic.rifestone.com:8082/channelSefPic/22.jpg
10.255.134.15服务器用于播放视频,外网地址目前没找到。
内网则可以播放: