1

这与这个问题有关。我正在编写一个使用 REST 的 Flex 应用程序(一个 WindowedApplication)。当我使用有效的身份验证发布时一切都很好,但如果我碰巧将无效的用户名或密码传递给 REST API(具体来说是 Twitter REST API),则会弹出一个身份验证对话框。

这不是理想的用户体验,当我使用 HTTPService 和 URLRequest 时都会发生这种情况。我似乎没有可以捕捉到取消对话框的事件。

这是我的代码的样子:

    var request:URLRequest = new URLRequest('http://twitter.com/statuses/update.json');
    request.method = URLRequestMethod.POST;
    var encoder : Base64Encoder = new Base64Encoder();
    encoder.encode(this.user + ':' + this.password);
    request.requestHeaders.push(new URLRequestHeader("Authorization", "Basic " + encoder.toString()));
    var params:Object = new Object();
    params.status = msg;                
    request.data = params;

    var loader:URLLoader = new URLLoader();
    loader.addEventListener(Event.COMPLETE, HandleRequestComplete);
    loader.load(request);

我错过了什么吗?有没有更好的方法来解决这个问题?

4

3 回答 3

2

那是因为您的 URLRequest 正在处理身份验证。为避免这种情况,请执行以下操作:

request.authenticate = false;

问候!

阿兰。

于 2009-06-18T07:14:11.603 回答
1

这里的 Twitter API 文档:

suppress_response_codes:如果存在此参数,则所有响应都将返回 200 OK 状态代码 - 甚至是错误。此参数的存在是为了适应在拦截所有非 200 响应的浏览器中运行的 Flash 和 JavaScript 应用程序。如果使用,那么客户端的工作就是通过解析响应正文来确定错误状态。请谨慎使用,因为这些错误消息可能会发生变化。

于 2008-12-31T23:12:35.307 回答
0

我不知道这是否适用于普通的 Flex 应用程序,但在 AIR 应用程序中,您可以设置允许的响应代码列表以被视为有效。

于 2009-06-02T13:18:07.463 回答