下载普通http连接的图片和ftp服务器的图片

简介: 下载普通http连接的图片和ftp服务器的图片

今天来说下下载图片,开发中经常会加载图片,可是说到下载图片很多人可能并没有尝试过,更遑论是加载的图片地址是在ftp服务器上的,类似于http协议,ftp也是一种协议,区别是,访问ftp服务器需要账号密码登录鉴权的,否则是拿不到图片的。博主遇到这个问题已经是半年前了,今天突然想到,遂拿出来分享下。


先说下载普通图片,方法可能会很多,博主不一一列举了,此处仅放:


默认的系统网络请求

 NSError *error=nil;
    NSURL *url=[NSURL URLWithString:@"http://ww3.sinaimg.cn/mw690/51f76ed7jw1e3ohzmmnffj.jpg"];
    NSURLRequest *request=[[NSURLRequest alloc] initWithURL:url];
    NSData *imgData=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];
    UIImage *img=nil;
    UIImageView *imageView;
    if(imgData)
    {
        img=[UIImage imageWithData:imgData];
        imageView.image=img;
    }

还有SDWebImage的方法:

 [imageView sd_setImageWithURL:imagePath2 completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
        //这里可以拿到block回调至终的图片,这个方法还有另一个可添加placeholder的方法,跟这个差不多,自己看下啊
        NSLog(@"这里可以在图片加载完成之后做些事情");
    }];
//上面的方法是在加载图片时可通过回调拿到图片,这里是调用的方法,通过这个管理类来实现下载,封装基于NSURLConnection
SDWebImageManager *manager = [SDWebImageManager sharedManager];
    [manager downloadImageWithURL:imagePath2 options:SDWebImageRetryFailed progress:^(NSInteger receivedSize, NSInteger expectedSize) {
        NSLog(@"显示当前进度");
    } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
        NSLog(@"下载完成");
    }];

imageView关联的一个方法

    UIImageView *imgv = [[UIImageView alloc] init];
    NSMutableURLRequest *requestStr=[NSMutableURLRequest requestWithURL:@""];
    //设置请求头
    [requestStr addValue:@"" forHTTPHeaderField:@""];
    [imgv setImageWithURLRequest:@""
                placeholderImage:nil
                         success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {}
                             /*some code*/
                         failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {}
                             /*some code*/
                             ];

以上三种方法中,注意看的话会发现用到了NSURLRequest,用到了这个,那自然而然的就可以设置请求头了,说到这里应该明白了吧,这个请求头就是为了解决ftp服务器访问需要密码的问题,把账号密码放在头中,ftp服务器校验成功后返回图盘资源。而第二种,直接用SDWebImage是不能访问到ftp服务器的。

目录
相关文章
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
794 18
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
630 14
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
762 0
|
存储 安全 数据安全/隐私保护
HFS-快速创建HTTP服务器
鉴于HFS的操作简便和方便快捷,它在满足快速,临时的文件分享和传输需求上,能够发挥出巨大的作用。只要明确了以上的安全警告,并做好了必需的安全设置,HFS将是一款实用的HTTP服务器工具。
1682 9
|
10月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
831 10
|
10月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
868 8
|
10月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
10月前
|
存储 监控 安全
阿里云渠道商:云服务器价格有什么变动?
阿里云带宽与存储费用呈基础资源降价、增值服务差异化趋势。企业应结合业务特点,通过阶梯计价、智能分层、弹性带宽等策略优化成本,借助云监控与预算预警机制,实现高效、可控的云资源管理。
|
10月前
|
弹性计算 运维 安全
区别及选择指南:阿里云轻量应用服务器与ECS云服务器有什么区别?
阿里云轻量应用服务器适合个人开发者、学生搭建博客、测试环境,易用且性价比高;ECS功能更强大,适合企业级应用如大数据、高流量网站。根据需求选择:轻量入门首选,ECS专业之选。
659 2