2017-10-14 6 views
2

Je suis nouveau au codage Roku et je me demandais s'il y a une fonction simple (nœud non-tâche) que je peux utiliser pour vérifier et voir si une URL est valide et non juste retourner un Yay ou Nay afin que je puisse vérifier une deuxième URL? MerciRoku SceneGraph - vérifier l'URL pour 404

Répondre

0

Vous pouvez trouver ce que vous cherchez ici: roSystemLog

Vous avez également un code bon exemple dans ce lien que vous pouvez suivre.

+0

Bonjour, merci pour la réponse, mais cela me regarde bien au-dessus de la tête. Je ne comprends pas :(Est-ce que je l'appelle juste comme: showVideoScreenWithLogging (URL)? Quel sera le retour? – matrixebiz

0

Vous pouvez essayer d'exécuter Eval() lors de l'appel d'URL et rechercher une erreur de niveau 400. Si l'erreur est présente, passez à un autre appel Eval() sur l'URL suivante, et ainsi de suite jusqu'à ce que vous obteniez une URL avec laquelle vous pouvez sortir de la fonction. Eval() testera le code, et si aucune erreur ne se produit, mais si elle génère une erreur d'exécution, elle arrêtera simplement l'exécution de ce code et ne plantera pas l'application. C'est un gestionnaire d'exception ad-hoc assez décent. Voir ici: https://sdkdocs.roku.com/display/sdkdoc/Runtime+Functions#RuntimeFunctions-Eval(codeasString)asDynamic

+0

Bonjour, j'ai essayé d'imprimer: Imprimer Eval ("http://www.server.net/badfile. xml ") mais il imprimé était = ( ) – matrixebiz

0

Vous pouvez faire une demande à l'URL avec un roTransfer, et vérifier les erreurs. Dans cet exemple, j'utilise un GetHead(), puisque tout ce que vous avez à faire est de vérifier la validité.

' given a 404 URL 
url = "http://example.com/404" 

' request HEAD for the URL 
urlTransfer = CreateObject("roUrlTransfer") 
urlTransfer.setUrl(url) 
urlEvent = urlTransfer.head() 
if urlEvent <> Invalid 
    responseCode = urlEvent.getResponseCode() 
    if responseCode >= 200 and responseCode < 300 
     print "success" 
    else 
     print "fail with code " + Stri(responseCode) 
    end if 
else 
    print "transfer failed" 
end if 
+0

Bonjour, Je vais essayer, mais je pense que j'ai essayé ce déjà et je reçois une erreur de débogage sur les roUrlTransfer ne peut pas être utilisé comme un nœud de tâche en raison du fichier dans lequel il est exécuté. Je dois faire la vérification en tant que fonction simple, je vous le ferai savoir. – matrixebiz