Ответ 1
Есть запись в блоге Изменение заголовков для HTTP-запросов UIWebKit от iCab. Он предлагает использовать технологический вызов "Метод Swizzling" , чтобы получить то, что вы хотите. Но есть слухи, что Метод swizzling вызывает отклонение 4.0
Я хотел бы добавить текст в заголовок user-agent по умолчанию в 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:
.
Есть запись в блоге Изменение заголовков для HTTP-запросов UIWebKit от iCab. Он предлагает использовать технологический вызов "Метод Swizzling" , чтобы получить то, что вы хотите. Но есть слухи, что Метод swizzling вызывает отклонение 4.0
Частью пользовательского агента по умолчанию является ваше AppName и Version:
Мой пользовательский агент:
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]