我想将文字附加到NSURLConnection
中的默认用户代理标头。我知道如何change the user-agent of the 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:
。
答案 0 :(得分:5)
默认用户代理的一部分是您的AppName和版本:
我的用户代理是:
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]
答案 1 :(得分:-3)
来自iCab的博客条目Changing the headers for UIWebKit HTTP requests。他建议使用流程调用"Method Swizzling”来获得您想要的内容。但有传言称Method swizzling cause for 4.0 rejection