NSMutableURLRequest不尊重用户代理更改

时间:2014-06-11 19:57:53

标签: objective-c cocoa webview

我试图让WebView发送特定的用户代理但由于某种原因我无法让它工作。

这是我的代码:

- (void)awakeFromNib {
    NSURL *url = [NSURL URLWithString:@"http://www.whatismybrowser.com/developers/what-http-headers-is-my-browser-sending"];
    NSString* userAgent = @"Some Cool User Agent";

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [request setValue:userAgent forHTTPHeaderField:@"User-Agent"];

    NSLog(@"UA : %@",[request valueForHTTPHeaderField: @"User-Agent"]);

    [self.webView.mainFrame loadRequest:request];
}

NSLog行的输出为Some Cool User Agent,因此看起来这是在NSMutableURLRequest对象中设置的。

我的WebView按预期加载页面,但用户代理报告为:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14

我已用Charles Web Debugging Proxy确认了这一点。

为什么在WebView加载页面时会忽略User-Agent?

Complete xcode project here

1 个答案:

答案 0 :(得分:2)

试试这个:

[self.webView setCustomUserAgent:@"Some user agent"];