Получение заголовков HTTP с помощью xcode - PullRequest
1 голос
/ 04 августа 2011

Я пытаюсь получить пользовательский агент, но когда я пытаюсь его прочитать, он выходит (пусто)Поэтому я попытался получить заголовки http, и я не думаю, что они есть.Когда я использую

NSLog(@"http headers = %d", [[req allHTTPHeaderFields] fileSize]);

, он печатает ноль.req является NSMutableURLRequest.Кто-нибудь знает, почему это происходит?

Это метод, который я использую:

 - (BOOL)webView:(UIWebView )webView2 shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
    NSMutableURLRequest *req = (NSMutableURLRequest *)request; 
    NSString *versionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString)kCFBundleVersionKey];
NSLog(@"http headers = %@", [request allHTTPHeaderFields]);
NSLog(@"http headers = %d", [[req allHTTPHeaderFields] fileSize]);
[req setValue:[NSString stringWithFormat:@"myApp/%@ %@", versionString, [request valueForHTTPHeaderField:@"User-Agent"]] forHTTPHeaderField:@"User-Agent"];
    NSLog(@"user agent = %@", [request valueForHTTPHeaderField: @"User-Agent"]);}

Ответы [ 2 ]

2 голосов
/ 04 октября 2013

Это сработало для меня:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    NSString* secretAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
    NSLog(@"navigator.userAgent = %@", secretAgent);

    NSDictionary* headers = [request allHTTPHeaderFields];
    NSLog(@"headers: %@",headers);

    NSString* ua = [request valueForHTTPHeaderField:@"User-Agent"];
    NSLog(@"User-Agent = %@", ua);
}

Я не знаю, почему вы смотрите на filesize, когда вы можете просто посмотреть на сами заголовки.

Ср.https://stackoverflow.com/a/19184414/1431728

0 голосов
/ 04 августа 2011

В вашем объекте запроса нет заголовков, потому что вы их не добавили. Если вы хотите указать заголовок User-Agent, вам нужно добавить его самостоятельно, как указано здесь .

...