【问题标题】:flex URLLoader get Location headerflex URLLoader 获取位置标头
【发布时间】:2010-10-06 09:44:49
【问题描述】:

我正在使用带有 XML 数据的 URLLoader 和 URLRequest 发送 POST 请求。然后 API 发送带有重定向页面(位置标头)的响应,我想获取此 URL。我如何捕捉到这个响应?

更新:

调试器中的Event.COMPLETE:

event = flash.events.Event (@6e1edf9) 
 bubbles = false 
 cancelable = false 
 currentTarget = flash.net.URLLoader (@418e241) 
  [inherited] =  
  bytesLoaded = 1 
  bytesTotal = 0 
  data = " " 
  dataFormat = "text" 
  stream = flash.net.URLStream (@77c5fb9) 
   [inherited] =  
   bytesAvailable = 0 
   connected = true 
   endian = "bigEndian" 
   objectEncoding = 3 
 eventPhase = 2 
 target = flash.net.URLLoader (@418e241) 
  [inherited] =  
  bytesLoaded = 1 
  bytesTotal = 0 
  data = " " 
  dataFormat = "text" 
  stream = flash.net.URLStream (@77c5fb9) 
 type = "complete"

【问题讨论】:

  • 我的猜测是 Flex 会自动处理重定向,您不需要(也不能)读取标题 - 但我可能是错的。
  • 我尝试添加一个 Event.Complete 处理程序。但事件不包含此网址。查看调试器中事件的 UPD 视图
  • 如果这是服务器端重定向;客户端(Flash Player)怎么知道重定向发生了?
  • 使用URLLoaderLoader 时无法获取Location 标头。使用您编写的自定义 HTTP 客户端可能会很痛苦,所以要小心。超过他们不会连接到任何服务器 - 他们需要首先传递套接字策略文件。
  • 如果您使用的是 AIR,则可以使用 httpResponseStatus 事件来获取此信息。显然,如果您不使用 AIR,则这些值将设置为 null。 stackoverflow.com/questions/185761/…

标签: apache-flex actionscript flex3 flex4


【解决方案1】:

监听 URLLoaderhttpResponseStatus 事件。事件详细信息包含一个名为 responseHeaders 的属性,可以为您提供位置标头。详情请见http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLLoader.html#event:httpResponseStatus

此外,为了防止重定向,您可以将 URLRequest 上的 followRedirects 设置为 false。详情请见http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequest.html#followRedirects

【讨论】:

  • 对于 Flash 播放器?
猜你喜欢
  • 2010-09-21
  • 1970-01-01
  • 2022-08-07
  • 2020-01-02
  • 1970-01-01
  • 1970-01-01
  • 2019-09-16
  • 2012-05-31
  • 2016-07-16
相关资源
最近更新 更多