Ситуация по прежнему характеризуется как "Performing the basic HTTP authentication is still an absolute pain in the ass, but it is possible nonetheless"
Решения сводятся к двум путям:
Ссылке на статью в Developer Connection и статье некого дятла, который на двух страницах кода спускается на уровень CFNetwork и вручную инициирует соединение.
На самом деле все проще.
Если глянуть в википедию, то станет понятно, что весь процесс авторизации сводится к добавлению в заголовок запроса всего одной строки
Authorization: Basic bmFnaW9zOm11bmljaA==
где странный набор зашифрованных символов является base64 энкодингом конкатенации
base64encode(username+":"+password)
Собственно это делается просто, в методе createInvocationRef класса wsGeneratedObject
сказать
NSDictionary* headers = [self copyHeaderDictionary:[NSArray arrayWithObjects:@"", @"Basic bmFnaW9zOm11bmljaA==", nil] extraKeys:[NSArray arrayWithObjects:@"SOAPAction", @"Authorization", nil]] ;
WSMethodInvocationSetProperty(ref, kWSHTTPExtraHeaders, headers);
[headers release];
Ой.

0 коммент.:
Отправить комментарий