О подключении веб-сервиса Json/rest api/Nsurl

Я начинаю изучать веб-службу, где я использую один URL-адрес API для получения данных и отображения в своем табличном представлении. Но я видел несколько руководств — в них используется NSURLConnection или Rest API или AFNetworking.

Я действительно запутался во всех типах. Какой из них я должен использовать в этом типе выше. Для веб-службы, какой тип следует использовать. А также я видел некоторые сомнения в том, что SO использует синхронный или асинхронный режим. Таким образом, это любой другой тип для получения данных из URL?

Фактически для всех веб-сервисов, что следует использовать для получения и отображения данных?


person joseph    schedule 15.12.2015    source источник


Ответы (4)


Во-первых, AFNetworking и NSURLConnection используются на мобильной стороне. Rest API не с мобильной стороны. Rest API, который вы реализовали на стороне сервера, который обрабатывает операции CRUD, такие как GET, POST, PUT и DELETE.

Сторонние библиотеки призваны облегчить нашу работу. И AFNetworking — очень популярная и заслуживающая доверия библиотека.

AFNetworking выполняет асинхронные сетевые запросы. Чтобы узнать больше об этом, посетите Введение в AFNetworking.

AFNetworking делает все, что может NSURLConnection. Использование его сейчас сэкономит вам много времени на написание стандартного кода!

person Om Patel    schedule 15.12.2015

NSURLConnection и NSURLSession — это Apple API, которые используются для управления сетевыми операциями, такими как загрузка и выгрузка, AFNetworking — это фреймворк, который использует эти 2 API и добавляет многопоточность/обработку ошибок/доступность сети… чтобы упростить вашу жизнь, RESTful — это архитектура для клиента. -server, вы можете реализовать его на своем сервере, чтобы вернуть вещи обратно на вашу клиентскую сторону в простой в использовании модели (JSON).

synchronous означает, что вы ждете его завершения, чтобы сделать что-нибудь еще, asynchronous означает, что вы просто запускаете его, но вам не нужно его ждать, например, вы делаете запрос на сервер, и пользователь все еще может взаимодействовать с вашим пользовательским интерфейсом в то же время, поэтому рекомендуется использовать asynchronous task для запроса к серверу, а затем обновлять пользовательский интерфейс только в synchronous

надеюсь, что мое объяснение легко понять и правильно :)

person Tj3n    schedule 15.12.2015
comment
Да, теперь я ясно понимаю, что такое AFNetworking, Sunchronous и асинхронный... Но Rest - это подключение клиентского сервера, что означает, что я запутался. - person joseph; 15.12.2015
comment
я использую один URL-адрес, чтобы получить, опубликовать данные и отобразить их в виде таблицы. для этого Nsurlconection и Afnetworking для использования .... Но могу ли я использовать этот RESTFul для той же цели, например, для получения данных и отображения их в виде таблицы - person joseph; 15.12.2015
comment
Все зависит от сервера, если этот сервер создан для обработки RESTful, тогда вы можете запросить что угодно, потому что у RESTful уже есть некоторая структура URL-адресов, такая как GET, POST,... каждый служит своей цели, например, запрос на получение данных или загрузку данные на сервер....API означает код на стороне сервера для обработки этих URL-адресов и их выполнения. - person Tj3n; 15.12.2015
comment
Вам действительно не нужно понимать многое из того, что нужно использовать, за исключением случаев, когда вы создаете все самостоятельно, в основном это просто структуры запроса URL (ссылка с заголовком и телом), а AFNetworking или NSURLSession уже реализует это для легкого создания этих запросов. - person Tj3n; 15.12.2015

NSURLConnection

Это позволяет вам загружать содержимое URL, предоставляя объект запроса URL. Используя NSURLConnection, вы можете загружать URL-запросы как асинхронно с помощью блока обратного вызова, так и синхронно. См. этот пример

NSURL *URL = [NSURL URLWithString:@"http://example.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];

[NSURLConnection sendAsynchronousRequest:request
                                    queue:[NSOperationQueue mainQueue]
                        completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
     // ...
 }];

Дополнительную информацию можно найти в документах Apple< /а>

AFNetworking

Это сторонняя библиотека, основанная на загрузке базовых URL. Это очень легко установить через стручки и удобно использовать. Ниже приведен пример того, как я использую то же самое в своем приложении.

-(AFHTTPRequestOperationManager *)manager
{
    if (!_manager)
    {
        _manager = [AFHTTPRequestOperationManager manager];
        _manager.requestSerializer = [AFHTTPRequestSerializer serializer];
        _manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    }   
    return _manager;
}

Выше мы инициализируем экземпляр AFHTTPRequestOperationManager *manager

[self.manager POST:@"http://example.com" parameters:parameters

               success:^(AFHTTPRequestOperation *operation, id responseObject)
     {
         NSError *error;
         NSMutableDictionary *responseDict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:&error];
         // return response dictionary in success block
     }

               failure:^(AFHTTPRequestOperation *operation, NSError *error)
     {
         // return error in failure block
     }]

Вышеупомянутый метод будет загружать данные асинхронно, а остальные не требуют пояснений. Но если вы хотите заблокировать пользовательский интерфейс, как синхронный запрос, используйте [operation waitUntilFinished], который является антишаблоном. Здесь operation является экземпляром AFJSONRequestOperation.

person Vijay Sanghavi    schedule 15.12.2015
comment
@joseph REST — это всего лишь разновидность API, например SOAP. - person Vijay Sanghavi; 15.12.2015
comment
должен ли я использовать REST для получения данных и публикации данных в моем табличном представлении - person joseph; 15.12.2015
comment
Да, конечно, REST — это очень быстро реагирующий API. - person Vijay Sanghavi; 15.12.2015

person    schedule
comment
Собственно Что то dictfeed И arrEntry... Вы конвертируете данные json в mutableDictionary. И зачем этот корм - person joseph; 15.12.2015
comment
sendSynchronousRequest заменен на iOS9. - person Nimit Parekh; 15.12.2015
comment
это примерно nsurl. Тогда нам не стоит использовать Afnetworking, rest kit и все что ли???. Тогда для какого типа web service вы будете использовать AFNetworking и rest kit... - person joseph; 15.12.2015
comment
feed - это ключ ответа json. а тип канала - словарь, поэтому в dictfeed получаются все каналы. - person Nikunj5294; 15.12.2015