Я создал онлайн-страницу PHP в Cloud9, в которой я могу подключиться к базе данных MySQL и делать все, что хочу. Я могу подключить эту страницу из симулятора приложений iOS без использования AFNetworking. Тем не менее, я должен использовать эту библиотеку и создать запрос POST.
Мой запрос POST терпит неудачу и дает эту ошибку:
Ошибка: Ошибка домена = NSCocoaErrorDomain Code = 3840 «Операция
не может быть завершено. (Ошибка какао 3840.) «(текст JSON не начался
с массивом или объектом и возможностью разрешать фрагменты не установлены.)
{NSDebugDescription = текст JSON не начинался с массива или объекта и
возможность разрешить фрагменты не установлены.}
Мой код 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!");
}
?>
Как видите, я пока ничего не делаю. Я проверю параметры, но сейчас я просто хочу соединения. Я вижу «Здесь!» войти и получить ошибку. Я что-то не так делаю или чего-то не хватает? Я нашел несколько сообщений об этой ошибке, но они не находятся в ситуации отказа. Таким образом, я запутался.
Спасибо!
Попробуйте изменить свой код, чтобы сделать массив следующим образом:
echo json_encode(array("response" => "done!"));
Затем в вашем коде iOS получите объект ответа:
NSArray *jsonObjects = [responseObject objectForKey:@"response"];
Других решений пока нет …