Swift https自定义证书后 如何加载图片的问题

[已解决]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
查看查看304 回复回复8 收藏收藏 分享淘帖 转播转播 分享分享 微信
查看: 304|回复: 8
收起左侧

[已解决] Swift https自定义证书后 如何加载图片的问题

[复制链接]
fasoal 发表于 2016-7-13 14:59:11 | 显示全部楼层 |阅读模式
快来登录
获取最新的苹果动态资讯
收藏热门的iOS等技术干货
拷贝下载Swift Demo源代码
今天弄了下https的自定义证书,用Alamofire实现的https的调用。

以前调用服务器端的图片资源用的是:

[Swift] 纯文本查看 复制代码
let imageData =  NSData(contentsOfURL: NSURL(string: imageUrl)!)


现在不知道如何通过证书调用,请大神们指教。

Swift https自定义证书后 如何加载图片的问题

Swift https自定义证书后 如何加载图片的问题 - 敏捷大拇指 - Swift https自定义证书后 如何加载图片的问题




都看到这里了,就把这篇资料推荐给您的好朋友吧,让他们也感受一下。

回帖是一种美德,也是对楼主发帖的尊重和支持。

*声明:敏捷大拇指是全球最大的Swift开发者社区、苹果粉丝家园、智能移动门户,所载内容仅限于传递更多最新信息,并不意味赞同其观点或证实其描述;内容仅供参考,并非绝对正确的建议。本站不对上述信息的真实性、合法性、完整性做出保证;转载请注明来源并加上本站链接,敏捷大拇指将保留所有法律权益。如有疑问或建议,邮件至marketing@swifthumb.com

*联系:微信公众平台:“swifthumb” / 腾讯微博:@swifthumb / 新浪微博:@swifthumb / 官方QQ一群:343549891(满) / 官方QQ二群:245285613 ,需要报上用户名才会被同意进群,请先注册敏捷大拇指

嗯,不错!期待更多好内容,支持一把:
支持敏捷大拇指,用支付宝支付10.24元 支持敏捷大拇指,用微信支付10.24元

评分

参与人数 1金钱 +10 收起 理由
Anewczs + 10 发一帖,长一智!赞一个!

查看全部评分

 楼主| fasoal 发表于 2016-7-13 15:36:35 | 显示全部楼层
已解决,解决方式如下:
[Swift] 纯文本查看 复制代码
        Alamofire.request(.GET, imageUrl).responseData { (responce) in
            let imageData =  responce.data
            if let imageData = imageData
            {
                if let image = UIImage(data: imageData)
                {
                    if ocLx == "1"
                    {
                        imageView.image = rotationImageByAspectRatio(image)
                    }
                    else
                    {
                        imageView.image = image
                    }
                }
            }
        }



评分

参与人数 1金钱 +10 贡献 +10 专家分 +10 收起 理由
Anewczs + 10 + 10 + 10 32个赞!专家给力!

查看全部评分

 楼主| fasoal 发表于 2016-7-13 15:37:21 | 显示全部楼层
刚开始用Alamofire,不太熟.
 楼主| fasoal 发表于 2016-7-13 16:23:16 | 显示全部楼层
还想起个问题,由于平时加载图片都是用的
imageView.sd_setImageWithURL 有缓存机制,
如果换成上面贴的方法,每次都得加载   
我现在想着就是要不加载图片的时候用http 加载数据的时候用https
如果有哪位大神知道更好的解决办法  请不吝赐教
Anewczs 发表于 2016-7-13 18:44:23 | 显示全部楼层
fasoal 发表于 2016-7-13 16:23
还想起个问题,由于平时加载图片都是用的
imageView.sd_setImageWithURL 有缓存机制,
如果换成上面贴的方法, ...

赞求学深入刨根问底的精神!
cocoaswift 发表于 2016-7-13 19:45:14 | 显示全部楼层
fasoal 发表于 2016-7-13 15:36
已解决,解决方式如下:
[mw_shl_code=swift,true]        Alamofire.request(.GET, imageUrl).responseDat ...

赞!
 楼主| fasoal 发表于 2016-7-19 08:46:16 | 显示全部楼层
我之前提到的缓存问题应该归为
SDWebImage如何支持https
解决方案如下:
调用方式改为
imageView.sd_setImageWithURL(url, placeholderImage: nil, options: SDWebImageOptions.HandleCookies)

其中SDWebImage源码中需要修改SDWebImageDownloaderOperation.m
- (void)connectionNSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
    if ([challenge previousFailureCount]== 0) {
        
        //NSURLCredential 这个类是表示身份验证凭据不可变对象。凭证的实际类型声明的类的构造函数来确定。
        NSURLCredential* cre = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
        [challenge.sender useCredential:cre forAuthenticationChallenge:challenge];
    }
    else{
        
    }
}
 楼主| fasoal 发表于 2016-7-19 08:47:32 | 显示全部楼层
我之前提到的缓存问题应该归为
SDWebImage如何支持https
解决方案如下:
调用方式改为
imageView.sd_setImageWithURL(url, placeholderImage: nil, options: SDWebImageOptions.HandleCookies)

其中SDWebImage源码中需要修改SDWebImageDownloaderOperation.m
- (void)connectionNSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
    if ([challenge previousFailureCount]== 0) {
        
        //NSURLCredential 这个类是表示身份验证凭据不可变对象。凭证的实际类型声明的类的构造函数来确定。
        NSURLCredential* cre = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
        [challenge.sender useCredential:cre forAuthenticationChallenge:challenge];
    }
    else{
        
    }
}
3rdev 发表于 2016-7-19 12:53:57 | 显示全部楼层
fasoal 发表于 2016-7-19 08:47
我之前提到的缓存问题应该归为
SDWebImage如何支持https
解决方案如下:

哥们,我看好你!解决了,还学会了分析归纳!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

做任务,领红包。
我要发帖

分享扩散

都看到这里了,就把这资料推荐给您的好朋友吧,让他们也感受一下。
您的每一位朋友访问此永久链接后,您都将获得相应的金钱积分奖励
热门推荐

合作伙伴

Swift小苹果

  • 北京治世天下科技有限公司
  • ©2014-2016 敏捷大拇指
  • 京ICP备14029482号
  • Powered by Discuz! X3.1 Licensed
  • swifthumb Wechat Code
  •   
快速回复 返回顶部 返回列表