Как сделать запрос API на какой-нибудь сервер в Року - PullRequest
5 голосов
/ 24 февраля 2012

Я очень новичок в работе с roku и конкретным языком roku (BasicScript). Мне нужно сделать API-вызовы на некоторый сервер, чтобы получить каналы. Я не понимаю, как это сделать в Roku. Пожалуйста, предложите.

Ответы [ 2 ]

6 голосов
/ 17 мая 2012

вот прямой способ сделать это, не полагаясь на синтаксис библиотек кода, включенных в ваш 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 "****************************************"
0 голосов
/ 27 февраля 2012
http=NewHttp("http://server address")
rsp = http.GetToStringWithRetry()
print rsp 'To check the response text from server
...