在发出HTTP请求时访问重定向到的URL

时间:2013-04-03 23:41:54

标签: actionscript-3 flash flex

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

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

  1. 我们向example.com/a.gif
  2. 发出请求
  3. example.com重定向到example2.com/b.gif
  4. example2.com重定向到example3.com/c.gif
  5. 我已经盯着URLLoader及其各种事件的文档了一段时间,看起来似乎没有办法:

    1. 指示URLLoader不遵循重定向
    2. 访问初始请求后涉及的任何网址
    3. 有谁知道有没有办法做到这一点?我没有使用URLLoader,所以如果有另一个类支持这个功能,我可以使用它。

      有人能指出我正确的方向吗?提前谢谢!

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

      编辑2 - 我也尝试过使用HTTP客户端库(as3httpclientlib,具体而言)。这是有效的,除了它从端口843加载跨域策略,而不是通过向/crossdomain.xml发出HTTP请求。我正在使用的上下文需要后者,所以使用Socket底层的东西它将无法工作,除非有办法强制Socket从HTTP而不是端口843加载跨域策略。

1 个答案:

答案 0 :(得分:1)

重定向通常已到位,因为原始网址不应再使用了。该文件在example.com/a.gif中不存在,因此从理论上讲,您不需要了解它。为什么需要中间请求路径?

我不知道找到任何请求的重定向链的动作脚本方式,但是如果你想为特定的链做到这一点你可以使用HttpFox for Firefox,或者在google chrome中点击f12并查看网络对重定向的URL发出请求时的选项卡。这仅在客户端被服务器重定向到新地址(HTTP 302响应或类似地址)时才有效。如果服务器选择在某人的浏览器请求example.com/时返回example3.com/c.gif的内容a.gif你无能为力。