我有一个程序化的UIWebView,它用于浏览存储在我的服务器上的iphone风格的站点。在这个网站上,有一些指向用户可以下载到我的应用程序中的文件的链接。现在,我试着用以下方法来检测:

- (BOOL) webView:(UIWebView *) webView shouldStartLoadWithRequest:(NSURLRequest *) request navigationType:(UIWebViewNavigationType) navigationType
{
    url = [request URL];
    NSString *mimeType = [request valueForHTTPHeaderField:@"Content-Type"];
    NSLog(@"Content-type: %@", mimeType);
    if(mimeType == @"application/zip" || mimeType == @"application/x-zip" || mimeType == @"application/octet-stream")
    {
        NSLog(@"Downloading file!");
        [NSThread detachNewThreadSelector:@selector(download:) toTarget:self withObject:@"/tmp/file.ipa"];
        return NO;
    }
    return YES;
}

但是,当调用此方法时,内容类型头几乎总是(空),因此我无法下载文件。
你怎么做才能正确?

最佳答案

您试图从尚未发出的nsurlrequest中检测内容类型。在使用nsurlconnection发出请求之前,您不会知道内容类型。在这种情况下,我可能只需要查看url路径的文件扩展名。

10-08 05:55