【问题标题】:ASIHttpFormDataRequest notification when endsASIHttpFormDataRequest 结束时的通知
【发布时间】:2011-09-10 21:59:33
【问题描述】:

我如何知道我的 ASIHttpFormDataRequest 何时结束? 实际上我正在连续做两个。第一个是发送消息,另一个是从数据库中检索所有消息。

或者有时我的第一条消息还没有发送,而我的第二个请求只是给我未上传的消息列表。

我想在第一个结束时延迟第二个。 谢谢!

有什么想法吗?

谢谢你:)

【问题讨论】:

    标签: ios xcode notifications asihttprequest


    【解决方案1】:

    异步使用请求是一个好习惯。

    要确定一个请求是否已经完成,您可以通过简单地使您的类符合[ASIHTTPRequestDelegate][1] 来做到这一点。 它为您提供了一系列方法来实现成功、失败或重定向的请求。

    在给定的情况下,您正在寻找 - (void)requestFinished:(ASIHTTPRequest *)request; 您必须将请求的委托设置为当前调用类。

    根据您当前请求的结果,您可能会触发另一个请求。您可以在其中放置一个if-statement 以检查 URL 和响应代码并相应地触发您的下一个请求。 (还有很多其他方法可以确定何时可以调用下一个请求。但最简单的方法是监听第一个请求的结果。)

    这是来自ASIHTTPRequest Projects Documentation的一些代码:

    - (IBAction)grabURLInBackground:(id)sender
    {
       NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
       ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
       [request setDelegate:self];
       [request startAsynchronous];
    }
    
    - (void)requestFinished:(ASIHTTPRequest *)request
    {
       // Use when fetching text data
       NSString *responseString = [request responseString];
    
       // Use when fetching binary data
       NSData *responseData = [request responseData];
    }
    
    - (void)requestFailed:(ASIHTTPRequest *)request
    {
       NSError *error = [request error];
    }
    

    HTH

    【讨论】:

    • 非常感谢:)。实际上我发现我也可以将这些请求放入队列中。对吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 2012-01-28
    • 2011-05-25
    • 2020-07-08
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多