Агент пользователя не меняется в 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 он показывает новое значение агента пользователя.

2013-12-16 19:03:42.200 App[736:60b] UA: Mozilla / 5.0 (iPhone; процессор iPhone OS 7_0_4, как Mac OS X) AppleWebKit/537.51.1 (KHTML, как Gecko) Mobile / 11B554a (iOS)

Но когда я запускаю свое приложение, оно показывает старое. Вот скриншот пользовательского агента, показанного на веб-странице, которую я показываю в UIWebView: скриншот

Итак.. мои вопросы таковы: что я упускаю?? есть ли что-то в системе, что не позволяет разработчикам изменять эти данные??

Спасибо.

153   2  

2 ответов:

Я "решил" свою проблему, поместив в didFinishLaunchingWithOptions из моего AppDelegate.m следующий код:

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

Дело в том, что я не могу добавить текст к самому агенту пользователя, но я могу записать данные, которые мне нужны, чтобы различать доступ к веб-странице из разных приложений или веб-браузеров.

Спасибо всем за вашу помощь.

Так дело не пойдет. UIWebView переопределяет поле User-Agent.

Если вы попытаетесь зарегистрировать User-Agent в методе webView:shouldStartLoadWithRequest:navigationType:, вы увидите, что он уже переопределен, однако вы можете использовать NSURLConnection для загрузки вашего запроса с помощью пользовательского User-Agent, а затем использовать метод loadHTMLString:baseURL: или метод loadData:MIMEType:textEncodingName:baseURL: из UIWebView для отображения загруженных данных из NSURLConnection.

    Ничего не найдено.

Добавить ответ:
Отменить.