2011-09-10 39 views
-1

如何知道我的ASIHttpFormDataRequest何時結束? 其實我連續做了兩個。第一個包括髮送消息,而另一個包括從數據庫中檢索所有消息。ASIHttpFormDataRequest結束時通知

或者,它有時會發生,我的第一條消息還沒有被髮送,我的第二個請求,只要給我消息的unuploaded名單。

我想推遲第一個結束時的第二個。 謝謝!

任何想法?

謝謝:)

回答

0

這是使用異步請求一個很好的做法。

要了解一個請求已完成或沒有,你可以通過簡單地遵循你的類的[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

+0

完美謝謝:)。 其實我發現我也可以把這些請求放在隊列中。對 ? – EricDumont