我对使用roku和roku特定语言(BasicScript)非常了解。我需要对某些服务器进行api调用以获取频道。我不明白如何在roku中做到这一点。请提出建议。
这是直接执行此操作的方法,而不必依赖SDK中包含的代码库的语法:
阻止方法(所有程序执行停止,直到检索到URL):
url="http://myserver.com/anExampleQuery?getmydata&apikey=AX5GZP5LL45D987D0&format=XML" xfer=createobject("roURLTransfer") xfer.seturl(url) data=xfer.gettostring()
非阻塞方法,您可以在等待数据时执行其他操作:
url="http://myserver.com/anExampleQuery?getmydata&apikey=AX5GZP5LL45D987D0&format=XML" xfer=createobject("roURLTransfer") xfer.seturl(url) port=createobject("roMessagePort") xfer.setport(port) timer=createobject("roTimeSpan") timer.mark() xfer.asyncgettostring() while true msg=wait(100,port) '100 millisecond pause if type(msg)="roUrlEvent" then if msg.getresponsecode()=200 then data=msg.getstring() headers=msg.getresponseheadersarray() exit while else xfer.asynccancel() end if else print "do something useful while we wait for data" end if if timer.totalmilliseconds() > 500 then ?"timeout exceeded" exit while end if end while print "***************HEADERS******************" for each header in headers print header end for print "***************DATA*********************" print data print "****************************************"