[webkit-dev] Add HTTP headers to WebView URL request with and without redirection

Bill Patterson billpatt at aol.com
Wed Oct 8 23:16:34 PDT 2008


I am needing to add HTTP headers to any URL request from a WebView.

I've got it working for direct URLs, but redirect URLs are being missed.

I've tried spawning a NSURLConnection and catching the redirected URL  
there, and that works, but I can't seem to stop the original WebView  
request, so I get multiple URL requests.

Here's the code I've tried:

-(NSURLRequest *)webView:(WebView *)sender resource:(id)identifier  
willSendRequest:(NSURLRequest *)request redirectResponse: 
(NSURLResponse *)redirectResponse fromDataSource:(WebDataSource  
*)dataSource
{
     // Update the status message
    @try
    {
        if (redirectResponse)
        {
            NSMutableURLRequest *mrequest = [request mutableCopy];
       myConnection = [[NSURLConnection alloc] initWithRequest:mrequest  
delegate:self];
     // attempt to cause this original request to be cancelled
            //[[webView mainFrame] stopLoading];    // when uncommented, this  
results in a crash
            return mrequest;    
        } else
        {
            NSMutableURLRequest *mrequest = [request mutableCopy];

            if (mrequest)
            {
                [mrequest retain];
                [self AppendHeaders:mrequest];      
                return mrequest;
            }
        }
        return request;
    }
    @catch (id exception)
    {
        return request;
    }
    return request;
}

- (NSURLRequest *)connection:(NSURLConnection *)connection
              willSendRequest:(NSURLRequest *)redirectRequest
             redirectResponse:(NSURLResponse *)redirectResponse
{
    
    if (redirectRequest && redirectResponse) {
        NSMutableURLRequest *mrequest = [redirectRequest mutableCopy];
        
        if (mrequest)
        {
            [mrequest retain];
            [self AppendHeaders:mrequest];      
            return mrequest;
        }
    }
    return redirectRequest;
}

Using Charles, I can see the redirected URL being loaded.  It loads 3  
times with the code above, the first time with the correct headers.    
I need it to just load once.  Without the NSURLConnection  
initWithRequest it loads once, but without the headers.

Any suggestions would be greatly appreciated.

Bill Patterson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.webkit.org/pipermail/webkit-dev/attachments/20081009/23026246/attachment.html 


More information about the webkit-dev mailing list