Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 发出HTTP请求时访问重定向到URL_Actionscript 3_Flash_Apache Flex - Fatal编程技术网

Actionscript 3 发出HTTP请求时访问重定向到URL

Actionscript 3 发出HTTP请求时访问重定向到URL,actionscript-3,flash,apache-flex,Actionscript 3,Flash,Apache Flex,当发出导致重定向的HTTP请求(例如使用URLLoader)时,是否可以访问重定向链中的任何URL 例如,假设发生以下情况: 我们向example.com/a.gif发出请求 example.com重定向到example2.com/b.gif example2.com重定向到example3.com/c.gif 我已经盯着URLLoader的文档和它的各种事件看了一段时间,但似乎没有一种方法可以: 指示URLLoader不要遵循重定向 访问初始请求后涉及的任何URL 有人知道有没有办法做到这一点

当发出导致重定向的HTTP请求(例如使用URLLoader)时,是否可以访问重定向链中的任何URL

例如,假设发生以下情况:

  • 我们向example.com/a.gif发出请求
  • example.com重定向到example2.com/b.gif
  • example2.com重定向到example3.com/c.gif
  • 我已经盯着URLLoader的文档和它的各种事件看了一段时间,但似乎没有一种方法可以:

  • 指示URLLoader不要遵循重定向
  • 访问初始请求后涉及的任何URL
  • 有人知道有没有办法做到这一点吗?我不喜欢使用URLLoader,所以如果有其他类支持此功能,我可以使用它

    谁能给我指出正确的方向吗?提前谢谢

    编辑-我应该澄清一下:我知道如何使用DOM调试器检测AS3之外的重定向。我对访问AS3中的重定向链特别感兴趣。似乎可以通过使用AIR player,但使用Flash player时相关属性不可用


    编辑2-我还尝试使用HTTP客户端库(具体来说是as3httpclientlib)。除了从端口843加载跨域策略,而不是通过向/crossdomain.xml发出HTTP请求之外,这是可行的。我正在处理的上下文需要后者,因此,除非有办法强制套接字从HTTP而不是从端口843加载跨域策略,否则使用套接字作为底层的东西是行不通的。

    重定向通常是正确的,因为不应再使用原始URL。该文件在example.com/a.gif上不存在,因此理论上您不需要了解它。为什么需要中间请求路径


    我不知道有什么actionscript方法可以为任何请求找到重定向链,但如果你想为特定链找到重定向链,你可以使用HttpFox for Firefox,或者在google chrome中点击f12,在请求重定向URL时查看网络选项卡。只有当服务器将客户端重定向到新地址(HTTP 302 Response或类似地址)时,这才有效。如果服务器选择在某人的浏览器请求时返回example3.com/c.gif的内容,例如.com/a.gif,则您无能为力。

    这些是服务器端重定向还是客户端重定向?如果是服务器端;它们对Flex应用程序不是透明的吗?它们是服务器端重定向(这就是为什么我说“example.com”重定向到example2.com)。重定向将自动执行。我正在试图找到一种拦截重定向的方法,或者至少要知道它们正在发生。您可能会更成功地使用。此库使用闪存套接字发出HTTP请求。。。因此,您应该能够获得HTTP响应及其包含的结果代码。我假设AS3HTTPClient遵循重定向,但您可能必须修改源代码,使其发送事件以通知您它遵循重定向。感谢您的回复。我也试过这个,它可以做我想做的事。但是,它并不能完全做到这一点,因为它使用套接字来完成所有的网络工作,从远程主机的端口843加载跨域策略,而不是从/crossdomain.xml加载。我没有提到这是一个要求,但它是。你知道有没有办法强迫它通过HTTP加载跨域策略吗?当然,通常是这样。然而,有时重定向用于其他原因。例如,当您请求广告时,在您实际收到内容之前,通常会有许多重定向。这通常是因为许多公司希望看到流量,所以他们只是在提供内容之前重定向用户。我知道如何检测AS3之外的重定向。我特别感兴趣的是在AS3.hm。。。。这可能很有用:特别是查找内容位置或设置Max Forwards这是一个请求头。我需要回复标题。嗯。。。在上面添加一个事件处理程序怎么样?看起来它会在每次响应时触发一次,而不是在调用完全解析时触发一次。它只有在遵循所有重定向之后才会触发,并且只有Adobe AIR(即,不是Flash Player)可以访问responseURL/response标头。我在不久前编辑了我的答案,以澄清这一点。对不起,我没说清楚。