使用安全性从网络加载UIImageView的图像

时间:2010-07-14 15:44:47

标签: iphone uiimageview

我正在尝试从互联网上将图像加载到UIImageView中。这没问题,但我想要的是使用用户凭据保护图像。因此,如果您转到图像的直接链接,您将获得一个登录弹出窗口(安全目录)。

如何传递这些用户凭据,以便我可以使用用户凭据从网络加载图像?

问题是图像可能无法直接访问,而只能通过iPhone应用程序访问。如果你有更好的想法来最大化安全性,请告诉我; - )

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果您使用的是基本服务器身份验证(我认为您基于“弹出对话框”),我建议您使用ASIHTTPRequest http://allseeing-i.com/ASIHTTPRequest/How-to-use

它使下载和发出Web请求变得非常容易。您可以通过以下方式下载图像并提供用户名和密码:

NSURL *url = [NSURL URLWithString:@"http://user:passwd@yoursite.com/secret/"];
ASIHTTPRequest *req = [ASIHTTPRequest requestWithURL:url];
[req startSynchronous];
NSError *err = [req error];
if (!err) {
    NSData *response = [req responseData];  
    UIImage* image = [UIImage imageWithData:response];
    // do whatever you want with the image here, like put it into a UIImageView
}

答案 1 :(得分:0)

我假设你有权访问服务器端。创建一个简单的PHP脚本,该脚本接收带有用户名和密码的HTTP POST请求,验证它并且如果它有效,则回显带有图像链接的JSON / XML /字符串,或者回显空值或其他内容。 / p>

使用urlWithString从您的iphone调用POST请求,当您收到回复时,请检查它是否为null,或者是否有链接。

相应处理结果(如果为null,则告诉用户登录凭据不正确)。

如果不为null,则为图像 - 显示它。希望这会有所帮助。