Чтение онлайн

на главную - закладки

Жанры

iOS. Приемы программирования

Нахавандипур Вандад

Шрифт:

Рассмотрим пример, в котором длительность задержки при URL-запросе изменяется после выделения и инициализации этого запроса:

NSString *urlAsString = @"http://www.apple.com";

NSURL *url = [NSURL URLWithString: urlAsString];

NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL: url];

[urlRequest setTimeoutInterval:30.0f];

Теперь обратимся к другому примеру, где URL и время задержки при URL-запросе задаются после выделения и инициализации:

NSString *urlAsString = @"http://www.apple.com";

NSURL *url = [NSURL URLWithString: urlAsString];

NSMutableURLRequest *urlRequest = [NSMutableURLRequest new];

[urlRequest setTimeoutInterval:30.0f];

[urlRequest setURL: url];

В других разделах этой главы мы изучим некоторые очень тонкие приемы, которые осуществимы с помощью изменяемых URL-запросов.

11.5. Отправка запросов HTTP GET с применением NSURLConnection

Постановка задачи

Необходимо отправить запрос GET по протоколу HTTP и, возможно, передать получателю вместе с этим запросом какие-либо параметры.

Решение

По определению GET-запросы допускают указание параметров в строках запросов в общеизвестной форме:

http://example.com/?param1=value1&param2=value2…

Строки можно использовать для перечисления параметров в обычном формате.

Обсуждение

GET-запрос — это запрос к веб-серверу на получение данных. Обычно запрос сопровождается параметрами, которые отправляются в строке запроса как часть URL.

Чтобы протестировать вызов GET, необходимо найти веб-сервер, принимающий такие вызовы и способный отослать какие-либо данные в ответ. Это просто. Как вы уже знаете, при открытии веб-страницы в браузере этот браузер по умолчанию посылает запрос GET к конечной точке. Поэтому данный раздел вы можете опробовать на любом сайте по своему усмотрению.

Для симулирования отправки параметров строки запроса в GET-запросе к той же веб-службе с помощью NSURLConnection воспользуемся изменяемым URL-запросом и явно укажем ваш HTTP-метод для GET с помощью метода setHTTPMethod:, относящегося к NSMutableURLRequest. Параметры оформляются как часть URL, следующим образом:

— (BOOL) application:(UIApplication *)application

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

NSString *urlAsString = <# Здесь укажите URL веб-сервера #>;

urlAsString = [urlAsString stringByAppendingString:@"?param1=First"];

urlAsString = [urlAsString stringByAppendingString:@"&param2=Second"];

NSURL *url = [NSURL URLWithString: urlAsString];

NSMutableURLRequest *urlRequest = [NSMutableURLRequest

requestWithURL: url];

[urlRequest setTimeoutInterval:30.0f];

[urlRequest setHTTPMethod:@"GET"];

NSOperationQueue *queue = [[NSOperationQueue alloc] init];

[NSURLConnection

sendAsynchronousRequest: urlRequest

queue: queue

completionHandler: ^(NSURLResponse *response,

NSData *data,

NSError *error) {

if ([data length] >0 &&

error == nil){

NSString *html = [[NSString alloc] initWithData: data

encoding: NSUTF8StringEncoding];

NSLog(@"HTML = %@", html);

}

else if ([data length] == 0 &&

error == nil){

NSLog(@"Nothing was downloaded.");

}

else if (error!= nil){

NSLog(@"Error happened = %@", error);

}

}];

self.window = [[UIWindow alloc] initWithFrame:

[[UIScreen mainScreen] bounds]];

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}

Переменная urlAsString в данном коде представляет собой сущность Xcode, которая называется «шаблон переменной». Если скопировать этот код и вставить его в ваш проект Xcode, переменная будет отображена так, как показано на рис. 11.1. Перед запуском этого примера кода убедитесь, что присвоили вышеупомянутой переменной валидный URL.

Рис. 11.1. Заменяемая переменная в Xcode

Единственный момент, который необходимо учитывать, заключается в том, что перед первым параметром ставится вопросительный знак, а перед всеми последующими — амперсанд (&). Вот и все! Теперь вы можете пользоваться методом HTTP GET и отправлять параметры в строке запроса.

11.6. Отправка запросов HTTP POST с применением NSURLConnection

Поделиться:
Популярные книги

Последний Паладин. Том 7

Саваровский Роман
7. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 7

Здравствуй, 1985-й

Иванов Дмитрий
2. Девяностые
Фантастика:
альтернативная история
5.25
рейтинг книги
Здравствуй, 1985-й

Мастер 8

Чащин Валерий
8. Мастер
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Мастер 8

Тринадцатый VII

NikL
7. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый VII

Метатель

Тарасов Ник
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель

Кодекс Охотника. Книга XXVI

Винокуров Юрий
26. Кодекс Охотника
Фантастика:
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXVI

Чужак из ниоткуда

Евтушенко Алексей Анатольевич
1. Чужак из ниоткуда
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужак из ниоткуда

Кодекс Охотника. Книга XXXV

Винокуров Юрий
35. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXV

Московское золото и нежная попа комсомолки. Часть Пятая

Хренов Алексей
5. Летчик Леха
Фантастика:
попаданцы
5.00
рейтинг книги
Московское золото и нежная попа комсомолки. Часть Пятая

Барону наплевать на правила

Ренгач Евгений
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Барону наплевать на правила

Уникум

Поселягин Владимир Геннадьевич
1. Уникум
Фантастика:
альтернативная история
4.60
рейтинг книги
Уникум

Второгодка. Книга 2. Око за око

Ромов Дмитрий
2. Второгодка
Фантастика:
героическая фантастика
альтернативная история
фэнтези
5.00
рейтинг книги
Второгодка. Книга 2. Око за око

По осколкам твоего сердца

Джейн Анна
2. Хулиган и новенькая
Любовные романы:
современные любовные романы
5.56
рейтинг книги
По осколкам твоего сердца

Хозяин Стужи 3

Петров Максим Николаевич
3. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
7.00
рейтинг книги
Хозяин Стужи 3