Как я получаю строку user-agent по умолчанию в NSURLConnection? - PullRequest
12 голосов
/ 15 апреля 2011

Я хотел бы добавить текст к заголовку пользовательского агента по умолчанию в NSURLConnection. Я знаю, как изменить пользовательский агент NSURLConnection , но я не вижу, как получить пользовательский агент по умолчанию. Я попробовал следующее:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
NSString *userAgent = [request valueForHTTPHeaderField:@"User-Agent"];
userAgent = [userAgent stringByAppendingString:extraUserAgentInfo];
[request addValue:userAgent forHTTPHeaderField:@"User-Agent"];

Это не работает, потому что userAgent возвращается nil из вызова valueForHTTPHeaderField:.

Ответы [ 2 ]

5 голосов
/ 23 августа 2013

Часть пользовательского агента по умолчанию - ваше имя и версия приложения:

Мой пользовательский агент:

User-Agent  foo-bar/1.0 CFNetwork/609.1.4 Darwin/12.4.0

foo-bar - это значение [[NSBundle mainBundle] objectForInfoDictionaryKey:(__bridge NSString *) kCFBundleNameKey]

и

1.0 - это значение [[NSBundle mainBundle] objectForInfoDictionaryKey:(__bridge NSString *) kCFBundleVersionKey]

0 голосов
/ 18 апреля 2011

Есть запись в блоге Изменение заголовков HTTP-запросов UIWebKit от iCab.Он предлагает использовать вызов процесса «Метод Swizzling» , чтобы получить то, что вы хотите. Но есть слух, что Метод Swizzling вызывает отклонение 4,0

...