在Roku设备上,以下代码可靠且快速地获取一个小文本文件(<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上,几乎每次代码运行时都会出现非空白返回( info.txt文件的内容)。另一方面,Roku几乎总是返回一个空字符串"";通常需要一个或多个调用(有时从不)才能得到非空字符串返回。
我尝试改变超时,使用非异步.GetToString()和它自己的超时(~30秒),在url中附加'?rnd=xxxx‘(其中xxxx是一个随机数)和EnableFreshConnection(真)--所有这些都对超级设备的成功没有影响。
我的roku详情:3910 46 Express,软件10.0.0 build 4209-51 4670 X Roku Ultra,软件10.0.0 build 4209-46
为什么这在快递上一直运行得很好,但几乎总是在超级跑车上失败?更重要的是,如何在超级设备上可靠地工作?
发布于 2021-11-04 19:56:12
在调用了我的网页提供商GoDaddy和我的ISP提供商Frontier之后,结果是在我新的Frontier提供的NVG443B调制解调器上设置了一个设置。为什么有些浏览设备和一些Rokus可以获得所需网页的新副本,而其他设备不清楚,但Frontier的技术电话支持解决了这个问题(至少目前看来,启用IPv6似乎是解决问题的方法)。
https://stackoverflow.com/questions/69831099
复制相似问题