CGImageSourceCreateWithURL带有身份验证

时间:2013-09-17 14:00:57

标签: ios objective-c web-services authentication

我正在尝试从以下网址读取图片属性:

http://www.example.com/ws/img/8

因为它是一个web服务,我需要将身份验证传递给URL。 我不想下载图片来阅读它的属性。所以我试图像这样使用CGImageSourceCreateWithURL:

CGImageSourceRef imageSourceRef = CGImageSourceCreateWithURL((__bridge CFURLRef)[NSURL URLWithString:@"http://admin:admin@www.example.com/ws/img/8"], NULL);
CFDictionaryRef props = CGImageSourceCopyPropertiesAtIndex(imageSourceRef, 0, NULL);

props仍然返回null。

有没有办法通过身份验证访问图像属性? (如果我通过RestKit函数下载图像,它当然可以工作)

由于

2 个答案:

答案 0 :(得分:1)

我不会使用CGImageSourceCreateWithURL,而是使用NSURLRequest进行相应的身份验证,然后将图片下载为NSData,然后使用CGImageSourceCreateWithData,或者只是下载图片如果已经有效,请使用RestKit。

这将使您在验证协议方面具有更大的灵活性。如果您在没有添加所需信息的情况下进行基本的HTTP GET,那么withURL初始化程序实际上只是一个实用程序函数。

答案 1 :(得分:0)

我认为您需要查看使用CGImageSourceCreateWithDataProvider并使用CGDataProvider仅下载图片中请求的信息。这样您就可以使用API​​进行下载,从而可以选择添加Authorization标头。

如果您拥有对服务器的控制权,那么最好全面创建一个索引文件,该文件为您提供可用图像的详细信息以及它们的大小。您显然是从某处获取图像URL,因此它也应该同时返回一些上下文数据。