【发布时间】:2013-12-16 07:31:55
【问题描述】:
在通过 UPnP/SSDP 搜索 LG TV 时,我得到以下响应:
HTTP/1.1 200 OK
CACHE-CONTROL: max-age=172800
DATE: Mon Dec 16 06:31:03 2013 GMT
EXT:
LOCATION: http://<IP>:<PORT>/udap/api/data?target=rootservice.xml
SERVER: Linux/3.0.13 UDAP/1.0 47LN5750-UH/05.00.30
ST: udap:rootservice
USN: uuid:c8ffxxxx-xxxx-xxxx-xxxx-xxxx34b4c708::udap:rootservice
之后,当我尝试获取 LG 智能电视描述以了解支持的设备信息、服务和命令时,使用上面提供的 LOCATION URL,我收到“404 - Not Found”错误。
这是我获取解密的代码:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://<IP>:<PORT>/udap/api/data?target=rootservice.xml"]
cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData
timeoutInterval:10];
[request setHTTPMethod: @"GET"];
NSError *requestError;
NSURLResponse *urlResponse = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&requestError];*
当我尝试访问 UDAP 服务返回的 URL 时,为什么会出现“404 - Not Found”错误?
提前致谢
【问题讨论】:
-
LOCATION 标头在我假设的现实中有一个有效的 url?您是否检查过该 url 确实存在(例如,使用 Web 浏览器)?
-
@jku :是的,LOCATION 标头是带有 IP:PORT 的有效 URL(LOCATION: http://
: /udap/api/data?target=rootservice.xml )。但是,当我在网络浏览器上测试此 URL 时,它也无法加载页面。这听起来像是 LG 的错误还是我做错了什么? -
它应该是可用的,所以到目前为止这听起来确实像一个 LG 错误(只是一个有点难以置信......)。您是否检查过其他 M-SEARCH 回复(如果您搜索“ssdp:all”),例如拥有服务的设备(或 upnp:rootdevice)有不同的 url?
-
@jku :通过“ssdp:all”我能够发现 LG TV,它提供了一个有效的描述 URL。我可以得到电视的描述。
-
继续上面的评论:我可以通过 AVTransport、RenderingControl、ConnectionManager 服务获得电视的描述,我认为这些服务对 DLNA 很有用。我正在尝试为 LG 构建一个远程控制,从我的调查看来,我需要访问 netrcu 和/或 rootservice 服务。如果我在这方面是正确的,请指导我。