我在UIWebView中加载URL时遇到问题。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上
。我完全不知道该怎么办。不幸的是,我无法访问服务器,所以我必须处理我应用程序中的所有内容。
感谢您的任何建议。
啊,好的,所以似乎正在发生的事情是,我的自定义身份验证协议正在处理初始请求,然后当重定向请求进来时,第二个缓存协议正在拦截对图像的请求并破坏重定向。
在身份验证协议中,在startLoad方法中,我执行以下操作:
[NSURLProtocol setProperty:@YES forKey:@"AuthSet" inRequest:newRequest];
因此,在缓存协议的canInitWithRequest方法中,我执行以下操作:
if([NSURLProtocol propertyForKey:@"AuthSet" inRequest:request] != nil)
return NO;
因为,当我们缓存时,我们不需要遵循重定向。所以基本上如果身份验证协议抓取请求,缓存协议不应该响应它。
经过一些测试后将更新,以查看是否有任何其他副作用。