【问题标题】:Roku SceneGraph - check URL for 404Roku SceneGraph - 检查 404 的 URL
【发布时间】:2018-02-03 23:08:51
【问题描述】:

我是 Roku 编码的新手,我想知道是否有一个简单的函数(非任务节点)可以用来检查 URL 是否有效,然后只返回 Yay 或 Nay 所以我可以检查第二个网址吗?谢谢

【问题讨论】:

    标签: roku brightscript scenegraph


    【解决方案1】:

    你可以在这里找到你要找的东西:roSystemLog

    您在此链接中也有一个很好的示例代码,您可以关注它。

    【讨论】:

    • 您好,感谢您的回复,但这看起来超出了我的想象。我不明白:(我只是把它叫做:showVideoScreenWithLogging(URL)?返回是什么?
    • 嘿,U.Mitic Roku 中有任何异常处理语句吗?像 try-catch 还是其他?
    【解决方案2】:

    您可以尝试在 url 调用上运行 Eval(),并检查 400 级错误。如果出现错误,则继续对您想要的下一个 url 进行另一个 Eval() 调用,依此类推,直到您获得一个可以中断函数的 URL。 Eval() 将测试代码,如果没有错误将继续执行,但如果它抛出运行时错误,它只会停止该代码执行而不会使应用程序崩溃。这是一个相当不错的临时异常处理程序。见这里:https://sdkdocs.roku.com/display/sdkdoc/Runtime+Functions#RuntimeFunctions-Eval(codeasString)asDynamic

    【讨论】:

    【解决方案3】:

    您可以使用roTransfer 向 URL 发出请求,并检查错误。在本例中,我使用的是GetHead(),因为您需要做的就是检查有效性。

    ' 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
    

    【讨论】:

    • 你好,我会试试这个,但我想我已经尝试过了,我收到一个关于 roUrlTransfer 的调试错误,因为它正在运行的文件不能用作任务节点。我需要有检查作为一个简单的功能完成。我会告诉你的。
    猜你喜欢
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 2016-12-12
    • 2011-08-24
    • 2011-04-11
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多