【发布时间】:2011-08-04 18:07:57
【问题描述】:
我正在尝试获取用户代理,但是当我尝试阅读它时,它会出现(null)
NSLog(@"user agent = %@", [request valueForHTTPHeaderField: @"User-Agent"]);
request 是一个 NSURLRequest。因此,我尝试获取 http 标头,但我认为没有。当我使用
NSLog(@"http headers = %d", [[req allHTTPHeaderFields] fileSize]);
它打印出零。 req 是一个 NSMutableURLRequest。有谁知道为什么会这样。
这是我正在使用的方法:
- (BOOL)webView:(UIWebView )webView2 shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSMutableURLRequest *req = (NSMutableURLRequest *)request;
NSString *versionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString)kCFBundleVersionKey];
NSLog(@"http headers = %@", [request allHTTPHeaderFields]);
NSLog(@"http headers = %d", [[req allHTTPHeaderFields] fileSize]);
[req setValue:[NSString stringWithFormat:@"myApp/%@ %@", versionString, [request valueForHTTPHeaderField:@"User-Agent"]] forHTTPHeaderField:@"User-Agent"];
NSLog(@"user agent = %@", [request valueForHTTPHeaderField: @"User-Agent"]);}
【问题讨论】:
-
NSLog(@"http headers = %d", [[req allHTTPHeaderFields] count]);打印什么? -
你没有得到任何标题。您需要发布更多代码供我们进一步诊断。
-
这是我正在使用的方法。
-
`- (BOOL)webView:(UIWebView )webView2 shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSMutableURLRequest *req = (NSMutableURLRequest *)request; NSString *versionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString)kCFBundleVersionKey];
-
NSLog(@"http headers = %@", [request allHTTPHeaderFields]); NSLog(@"http headers = %d", [[req allHTTPHeaderFields] fileSize]); [req setValue:[NSString stringWithFormat:@"myApp%@ %@", versionString, [request valueForHTTPHeaderField:@"User-Agent"]] forHTTPHeaderField:@"User-Agent"]; NSLog(@"user agent = %@", [request valueForHTTPHeaderField: @"User-Agent"]); }
标签: xcode http header user-agent nsurlrequest