用户代理不在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.m的didFinishLaunchingWithOptions中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
下载的数据。