2012-02-24 9 views

答えて

5

はあなたの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

エラーBRIGHTSCRIPT:ERROR:roUrlTransfer:クラスPLUGIN |スレッド上のMARKUP RENDER: – rkaartikeyan

0
http=NewHttp("http://server address") 
rsp = http.GetToStringWithRetry() 
print rsp 'To check the response text from server 
+0

これは、SDKのURLユーティリティファイルの1つ(たとえば、TwitterOauthの例のurl.brs)を含める場合にのみ機能します。 url.brsは、実行時間の点でごくわずかなオーバーヘッドを追加するroURLTransferオブジェクトをラッピングするbrightscript関数のライブラリです。 – alphablender

関連する問題