用户代理不在NSMutableURLRequest中更改

我知道这可能有几个问题,但是当我尝试为我的UIWebView设置一个新的“用户代理”时,我遇到了问题。 这是我现在正在做的事情:

NSURL *myUrl = [NSURL URLWithString:auxUrl]; NSMutableURLRequest *myRequest = [NSMutableURLRequest requestWithURL:myUrl]; NSMutableString *auxUserAgent = [[NSMutableString alloc] initWithString:[myRequest valueForHTTPHeaderField: @"User-Agent"]]; [auxUserAgent appendString:@"(iOS)"]; [myRequest setValue:auxUserAgent forHTTPHeaderField:@"User-Agent"]; NSLog(@"UA : %@",[myRequest valueForHTTPHeaderField: @"User-Agent"]); 

我试图追加一些文本到实际的用户代理,并在XCode控制台它确实显示新的用户代理值。

Apple WebKit / 537.51.1(KHTML,如Gecko)Mobile / 11B554a(iOS)应用程序[736:60b] UA:Mozilla / 5.0(iPhone; CPU iPhone OS 7_0_4,如Mac OS X)

但是当我运行我的应用程序,它显示了旧的。 以下是我在UIWebView中显示的网页中显示的用户代理的屏幕截图: 截图

所以..我的问题是:我在想什么? 在系统中是否有某些东西不允许开发人员更改这些数据?

谢谢。

我通过在我的AppDelegate.mdidFinishLaunchingWithOptions中join了下面的代码来“解决”了我的问题:

  NSDictionary *dictionnary = [[NSDictionary alloc] initWithObjectsAndKeys:@"YOUR CUSTOM USER-AGENT", @"UserAgent", nil]; [[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary]; 

问题是我不能将文本附加到用户代理本身,但是我可以编写我需要的数据来区分从不同应用程序或Web浏览器访问网页。

感谢大家的帮助。

它不会那样工作。 UIWebView将覆盖User-Agent字段。

如果尝试在webView:shouldStartLoadWithRequest:navigationType:方法中loggingUser-Agent ,则会看到它已被覆盖,但是可以使用NSURLConnection通过自定义User-Agent加载请求,然后使用loadHTMLString:baseURL:方法或loadData:MIMEType:textEncodingName:baseURL:UIWebView loadData:MIMEType:textEncodingName:baseURL:方法显示从NSURLConnection下载的数据。