在Roku Express设备上,以下代码可靠而快速地获取一个小(<100字节,但从不为"空白"(文本文件的内容,该文件的内容可能会频繁更改;代码每分钟运行多次。
url="http://<-webpage-address->info.txt"
timeout=1000
fileString=""
http = CreateObject("roUrlTransfer")
http.SetPort(CreateObject("roMessagePort"))
http.SetUrl(url)
if http.AsyncGetToString()
event = wait(timeout, http.GetPort())
if type(event) = "roUrlEvent" then
fileString = event.GetString()
end if
end if
http.AsyncCancel()
在Roku Express上,几乎每次运行代码时都会出现非空白返回(info.txt文件的内容(。另一方面,Roku Ultra几乎总是返回一个空白字符串"";可能需要一个或多个通常数百个调用(有时永远不会(才能获得非空字符串返回。
我尝试过改变超时,使用非异步的.GetToString((和它自己的超时(约30秒(,并在url中添加类似的"?rnd=xxxx',其中xxxx是一个随机数,EnableFreshConnection(true(-所有这些都对Ultra设备的成功没有影响。
我的roku细节:3910RW Roku Express,软件10.0.0版本4209-514670X Roku Ultra,软件10.0.0版本4209-46
为什么这在Express上一直很好,但在Ultra上几乎总是失败?更重要的是,我如何在Ultra设备上可靠地工作?
在致电我的网页提供商GoDaddy和ISP提供商Frontier后,发现我的新Frontier提供的NVG443B调制解调器上的设置是原因。为什么一些浏览设备和一些Rokus可以获得所需网页的新副本,而其他设备则不能,我不清楚,但Frontier的技术电话支持解决了这个问题(至少目前启用IPv6似乎是解决方案(。