Wednesday, May 1, 2013

NSURLRequest allHTTPHeaderFields example ios


allHTTPHeaderFields

Returns a dictionary containing all the receiver’s HTTP header fields.
- (NSDictionary *)allHTTPHeaderFields
Return Value of [NSURLRequest allHTTPHeaderFields]
A dictionary containing all the receiver’s HTTP header fields.
Example of [NSURLRequest allHTTPHeaderFields]
NSLog(@"%@", [profileRequest allHTTPHeaderFields];
Example of [NSURLRequest allHTTPHeaderFields]
- (BOOL) webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType) navigationType 
{
    NSDictionary *headers = [request allHTTPHeaderFields];
    BOOL hasReferer = [headers objectForKey:@"Referer"]!=nil;
    if (hasReferer) {
        // .. is this my referer?
        return YES;
    } else {
        // relaunch with a modified request
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            dispatch_async(dispatch_get_main_queue(), ^{
                NSURL *url = [request URL];
                NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
                [request setHTTPMethod:@"GET"];
                [request setValue:@"https://whatever.com" forHTTPHeaderField: @"Referer"];
                [self.webView loadRequest:request];
            });
        });
        return NO;
    }
}