2013-05-17 63 views
1

我使用AFNetworking -

NSMutableURLRequest *request = [self requestWithMethod:@"GET" path:@"paths/" parameters:params]; 

AFJSONRequestOperation *jsonRequest = [AFJSONRequestOperation 
JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, 
NSHTTPURLResponse *response, id JSON) { 
     // something to do here in case of success 
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON 
{ 
     // and something there in case of failure 
} 

一切都在400個狀態碼JSONRequestOperationWithRequest成功工作正常,但在一種情況下,當我收到400狀態碼的響應,和JSON(有效,我已經檢查過),包含關於此錯誤的一些信息,正如我使用瀏覽器所看到的。 但JSONRequestOperationWithRequest調用成功塊,JSON和響應爲零。 這可能是什麼原因造成的?

+0

如果您獲得400個狀態碼,則應該調用失敗塊。 (我查了AFNetworking的源代碼) – danypata

+0

事實上在其他情況下失敗的塊被調用,只有在這種情況下成功塊被調用 – laucel

回答

5

如果requestOperation在完成後有相關錯誤,則調用失敗。出現錯誤的原因包括:內容類型不正確,沒有可接受的狀態碼(默認爲2XX範圍,但可以使用AFHTTPRequestOperation +addAcceptableStatusCodes:更改)或處理下載的數據時出錯。這是有保證的行爲。

作爲failure塊的一部分,您可能會在400響應中獲得JSON對象,並且您可能會在success中獲得nil JSON。這些都與AFNetworking的工作方式一致。

+0

謝謝Mattt,我不知道 – laucel