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