AFNetworking, AFHTTPRequestOperationManager не работает при работе с кодом 200

возникли странные проблемы с AFNetworking в последнее время. У меня есть PHP-бэкэнд, и я использую платформу SLIM. Упрощенный пример того, что происходит: если я использую ссылку Http: //xxx.xxx.xx.xx/InstaAPI/hi это должно называться:

$app->get('/hi', function() use($app) {

$app->response->setStatus(200);
echo "hiiii\n";
});

Теперь в моем коде объектива-C у меня есть:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"http://xxx.xxx.xx.xx/InstaAPI/hi" parameters:nil success:^(AFHTTPRequestOperation * _Nonnull operation, id  _Nonnull responseObject) {
NSLog(@"ok");
NSLog(@"%@",responseObject);
} failure:^(AFHTTPRequestOperation * _Nonnull operation, NSError * _Nonnull error) {
NSLog(@"fail");
NSLog(@"%@", operation.responseString);
}];

Результат, который я получаю в консоли вывода:

015-10-08 18:30:20.650 iReporter[12822:3214201] fail
2015-10-08 18:30:20.650 iReporter[12822:3214201] hiiii

Понятия не имею, почему он вызывает блок сбоя. В конце концов, статус установлен на 200, так что все должно быть в порядке. Может ли кто-нибудь дать мне несколько советов о том, что я могу делать здесь неправильно, пожалуйста?

1

Решение

Собираюсь ответить на это сам. Это оказалось очень просто. Мои заголовки установлены на 'Content-Type', 'application/json', Линия echo "hiiii\n"; это не JSON, поэтому мне пришлось использовать:

$response = array("Response"=>"HI!");
$echo json_encode($response);

Причина, по которой я получал подобные ошибки, заключалась в том, что я пытался отлаживать код, рассеивая эхо в глупых местах, чтобы проверить, куда попало выполнение в моем PHP-скрипте. Мораль истории, не используйте ни одного эха, если ваши заголовки установлены в JSON!

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]