如何在失败时访问HTTP响应主体?

时间:2014-05-14 17:04:05

标签: actionscript-3 flex flex4 httpservice

当Web服务调用失败并且我的错误"时,如何访问HTTP响应正文?事件监听器是打电话吗?我可以看到原始邮件,但无法找到访问响应的方法。

以下是我如何调用网络服务

var connect: HTTPService = new HTTPService;
connect.url = "https://app.XYZ.org/services/code?format=xml";
connect.method = "POST";
connect.contentType = "application/x-www-form-urlencoded";
connect.showBusyCursor = true;
connect.resultFormat = "xml";
connect.addEventListener("result", retrieveResults);
connect.addEventListener("fault", retrieveResults);
var params:Object = new Object;
params.username = user;
params.password = password;
params.code = "123";
connect.request = params;
connect.send();

和我的事件处理函数

private function retrieveResults(event:Event): void
{
  var success:Boolean = event.type == ResultEvent.RESULT;
..
}

message

1 个答案:

答案 0 :(得分:3)

我几乎肯定这不可能发生。但是根据错误,您可以尝试将这两个侦听器添加到加载器:

loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, httpIOErrorHandler);

一个给出状态,因此您可以找到错误。如果状态是正确的,后者应该为您带来结果(loader.data)。在某些情况下,AIR可以给你回复,但Flash无法做到。你应该尝试两种方式。

无论如何,我认为最好处理内部错误并返回ok(状态200),其中包含错误消息。使用http状态Flash非常糟糕:)