0

我有一个问题,我在UIWebView中加载URL。该网址将重定向到其他位置。 我处理这个用下面的代码重新定向:UIWebview中的重定向URL不加载图像

- (NSURLRequest *)connection:(NSURLConnection *)inConnection willSendRequest:(NSURLRequest *)inRequest redirectResponse:(NSURLResponse *)inResponse { 

    if(inResponse) { 
     NSMutableURLRequest *req = [[inConnection originalRequest] mutableCopy]; 
     [req setURL:[inRequest URL]]; 

     return req; 
    } 

    return inRequest; 
} 

然而,在页面加载时,我对所有的图像得到404。我可以在Safari中加载URL,而不会有任何问题。这发生在iOS6.1和iOS7上

我完全难以理解要做什么。 不幸的是,我没有访问服务器,所以我必须处理我的应用程序中的所有内容。

感谢您的任何建议。

回答

0

好吧, 因此,似乎发生的事情是,我的自定义auth协议正在处理初始请求,然后当重定向请求进入时,第二个高速缓存协议正在拦截对图像的请求并中断重定向。

在authprotocol,在startLoading方法我做了以下内容:

[NSURLProtocol setProperty:@YES forKey:@"AuthSet" inRequest:newRequest]; 

所以在缓存协议的canInitWithRequest方法我做到以下几点:

if([NSURLProtocol propertyForKey:@"AuthSet" inRequest:request] != nil) 
    return NO; 

因为,当我们缓存,我们不需要遵循重定向。所以基本上如果Auth协议抓取请求,缓存协议不应该对它做出响应。

一些测试后会更新,看看是否有其他副作用。