我有一个 flex 应用程序,用户可以在其中提供资源链接。我想执行一个简单的验证并检查 url 是否真的有效(不仅仅是结构,而是实际测试链接以确保我得到 200 OK)。
我想我会只使用 HttpService 并使用 HEAD 方法,但似乎只有当你将 useProxy 设置为 true 时这才可用,但我试过了,但我仍然得到错误;所以我很确定我做错了什么......这是代码片段
var service:HTTPService = new HTTPService();
service.method = "HEAD";
service.url = url;
service.useProxy = true;
service.addEventListener(ResultEvent.RESULT, result);
service.addEventListener(FaultEvent.FAULT, error);
service.send();
知道我做错了什么吗?对于如何检查 url 是否有效的其他建议,我也持开放态度(我更愿意直接从 Flex 执行此操作,而不必来回访问服务器)。谢谢。
编辑(2009 年 8 月 13 日)
我通过使用 UrlLoader 并在其上分配 2 个侦听器实现了一个简单的 UrlValidator。一个用于 IOError,另一个用于 Progress。我的想法是 Progress 的行为类似于 HEAD 调用,我可以在收到一些数据后终止流。不幸的是,在 404 或 403 的情况下调用了进度事件,这违背了目的。我也在 Open 事件中尝试过这个,但得到了相同的结果。有任何想法吗?