如何从 AS3 NetStream 对象获取 HTTP 状态码?
Posted
技术标签:
【中文标题】如何从 AS3 NetStream 对象获取 HTTP 状态码?【英文标题】:How to get HTTP Status Code from AS3 NetStream Object? 【发布时间】:2014-12-12 06:14:39 【问题描述】:我试图具体区分 404 和 401(或任何)HTTP 状态代码,但 NetStream/NetConnect 引发的事件似乎不包括 HTTP 状态。
var url = "404_or_401_producing_url";
var _nc = new NetConnection();
_nc.connect(null);
var _ns = new NetStream(_nc);
_ns.play(url);
在此流程中是否有可用的事件或属性包含 HTTP 状态?
【问题讨论】:
【参考方案1】:NetConnection
/NetStatus
不能这样工作。它旨在连接到不抛出 4xx 状态代码的 RTMP 服务器。但是,您可以创建一个事件侦听器。
connection = new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
private function netStatusHandler(event:NetStatusEvent):void
switch (event.info.code)
case "NetConnection.Connect.Success":
connectStream();
break;
case "NetStream.Play.StreamNotFound":
trace("Stream not found: " + videoURL);
break;
有a whole bunch of status codes可以听,但都不是4xx错误
【讨论】:
【参考方案2】:要获取 HTTP 状态代码,我建议您使用 URLStream
而不是 NetStream
,后者不使用 HTTPStatusEvent
。
有关更多详细信息,请查看此处(来自 adobe 的链接):URLStream 和 HTTPStatusEvent。在验证 HTTP 状态后,您可以使用或不使用NetStream
来播放您的流。
【讨论】:
以上是关于如何从 AS3 NetStream 对象获取 HTTP 状态码?的主要内容,如果未能解决你的问题,请参考以下文章
在 AS3 中播放 mp4 视频。 NetStream 无法调用回调 onMetaData
ActionScript 3 AS3从GetObjectsUnderPoint获取对象名称