我正在尝试从互联网上将图像加载到UIImageView中。这没问题,但我想要的是使用用户凭据保护图像。因此,如果您转到图像的直接链接,您将获得一个登录弹出窗口(安全目录)。
如何传递这些用户凭据,以便我可以使用用户凭据从网络加载图像?
问题是图像可能无法直接访问,而只能通过iPhone应用程序访问。如果你有更好的想法来最大化安全性,请告诉我; - )
提前致谢。
答案 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,则为图像 - 显示它。希望这会有所帮助。