在我的iPhone中,我需要显示来自远程URL的许多图像。某些URL可能会下载一些数据,但可能不包含实际的图像数据。那么我需要做些什么来检查下载的数据是否是图像数据?
Thnx提前, Syam S
答案 0 :(得分:2)
你的意思是你给了图像的实际网址(例如http://sstatic.net/so/img/logo.png),并且需要确定它们是否是有效的图像,还是你的意思是你“给予可能包含或不包含图片的网页的网址?
假设前者(看起来更可能,并且比其他情况更容易),您将需要查看请求URL时服务器返回的Content-type
标头。它的价值通常是不言自明的,例如text/html
,image/png
,image/gif
等等。如果你想要图像数据,那么检查字符串是否以image/
开头就足够了 - 尽管你可能想要改进那个方法,如果结果不够准确,无法满足你的需求。
要在iPhone应用中获取此标题,您可能希望在其iPhone开发者网站上使用Apple的Communicating with HTTP Servers指南中描述的方法。如果您只对标题感兴趣,可以考虑使用CFReadStreamCreateForStreamedHTTPRequest
(而不是指南建议的,CFReadStreamCreateForHTTPRequest
)来阅读回复。这将避免缓冲所有响应数据,并允许您下载所需的内容。