我正在寻找一种方法来检测一个NSURL是否是UIImage类支持的文件格式的URL,如果是,请用MWPhotoBrowser打开它(https://github.com/mwaterfall/ MWPhotoBrowser)而不是UIWebView。我的第一个想法是使用所有支持的文件扩展名的if条件。我想知道是否有人知道更好的方法?
答案 0 :(得分:3)
在您至少开始获取URL之前,您不知道URL上的内容。有些URL看起来像是以文件名结尾 - 图像文件名,甚至 - 但实际上指向HTML页面(例如,用于查看所述图像)。某些网址似乎不是以文件名结尾,而是直接指向图片文件。
通过发出HTTP HEAD
请求,您可以很好地了解网址中的数据类型:请参阅NSURLRequest
和NSHTTPURLResponse
并查找内容类型头。 (那些只是描述请求和响应;您需要NSURLSession
来执行请求并获得响应。)
尽管HEAD请求并不总是正确报告,但是:真正确定URL上是否有图像的唯一方法是获取它 - 大多数图像格式在数据的前几个字节内是可识别的,因此,您可以开始获取,查看您获得的第一个部分数据,如果您不想要其余部分,则中止获取。