2015-10-05 62 views
0

我在Cloud9中創建了一個在線PHP頁面,我可以連接到MySQL數據庫並執行任何我想要的操作。我可以在不使用AFNetworking的情況下從我的iOS應用程序模擬器連接該頁面。不過,我應該使用這個庫並創建一個POST請求。 我POST請求失敗,並給出了此錯誤:iOS - 連接PHP時AFNetworking失敗頁面

Error : Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

我的Objective-C代碼爲:

NSString *url = [URLFactory targetURL]; 
NSDictionary *dictionary = @{ 
          @"key" : @"value", 
          }; 

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 

[manager POST:url parameters:dictionary success:^(AFHTTPRequestOperation *operation, id responseObject) 
{ 
    NSLog(@"Response : %@",responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 

    NSLog(@"Here!"); 

    NSLog(@"Error : %@",error); 
}]; 

和PHP:

<?php 
header('Content-type: application/json'); 
$isPostRequest = $_SERVER['REQUEST_METHOD'] == 'POST'; 

if ($isPostRequest) { 

    echo json_encode("done!"); 
} 
?> 

正如你所看到的,我不是做任何事情。我會檢查參數,但現在我只想連接。我看到「這裏!」記錄並獲取錯誤。我做錯了什麼或者有什麼缺失?我發現了一些關於這個錯誤的帖子,但他們並沒有失敗。因此我很困惑。

謝謝!

回答

0

試着改變你的代碼,使一個數組,像這樣:

echo json_encode(array("response" => "done!")); 

然後在你的iOS代碼,得到響應對象:

NSArray *jsonObjects = [responseObject objectForKey:@"response"]; 
+0

非常感謝!我認爲我的錯誤是關於Objective-c的,但是你的解決方案起作用了:)再次,謝謝你! – anyName

+0

沒問題,樂意幫忙,接受答案關閉它。祝你好運! – dstudeba