14 votes

Comment obtenir la chaîne du user-agent par défaut dans une NSURLConnection ?

J'aimerais ajouter un texte à l'en-tête user-agent par défaut dans un fichier de type NSURLConnection . Je sais comment changer le user-agent de la NSURLConnection mais je ne vois pas comment obtenir le user-agent par défaut. J'ai essayé ce qui suit :

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
NSString *userAgent = [request valueForHTTPHeaderField:@"User-Agent"];
userAgent = [userAgent stringByAppendingString:extraUserAgentInfo];
[request addValue:userAgent forHTTPHeaderField:@"User-Agent"];

Cela ne fonctionne pas car le userAgent revient. nil de la valueForHTTPHeaderField: appel.

5voto

Heath Borders Points 8067

Le nom et la version de l'application font partie de l'agent utilisateur par défaut :

Mon agent utilisateur est :

User-Agent  foo-bar/1.0 CFNetwork/609.1.4 Darwin/12.4.0

foo-bar est la valeur de [[NSBundle mainBundle] objectForInfoDictionaryKey:(__bridge NSString *) kCFBundleNameKey]

et

1.0 est la valeur de [[NSBundle mainBundle] objectForInfoDictionaryKey:(__bridge NSString *) kCFBundleVersionKey]

-3voto

Black Frog Points 6902

Il y a un article de blog Modifier les en-têtes des requêtes HTTP UIWebKit de iCab. Il suggère d'utiliser un processus appelé La méthode "Swizzling" pour obtenir ce que vous voulez. Mais il y a une rumeur selon laquelle La méthode de swizzling est à l'origine du rejet de la version 4.0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X