UIWebview中的重定向URL未加载图像

时间:2013-12-23 12:34:02

标签: uiwebview ios7 nsurlconnection ios6.1 nsurlconnectiondelegate

我在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上

我完全不知道该怎么做。 不幸的是,我无法访问服务器,所以我必须处理我的应用程序中的所有内容。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

好的,好的, 所以似乎已经发生的事情是,我的自定义身份验证协议正在处理初始请求,然后当重定向请求进入时,第二个缓存协议拦截了对图像的请求并打破了重定向。

在authprotocol中,在startLoading方法中,我执行以下操作:

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

因此,在缓存协议的canInitWithRequest方法中,我执行以下操作:

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

因为,当我们进行缓存时,我们无需遵循重定向。因此,基本上如果Auth协议获取请求,缓存协议不应该响应它。

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

相关问题