asihttprequest连接https-其实是结合网友们的精华

今天总结一下纠结了我近一个星期的问题,asihttprequest连接https,正常是有2种思路。

1、忽略证书验证连接https

2、带着证书请求https。(但是鉴于具有有效期,证书失效就得重新设置,前后端都得改代码,对于一个企业级的内部应用来说,个人觉得不太适合。)

具体说说第1种思路,网上找了很多,大多数都是直接来了2句代码:

  [request setAuthenticationScheme:@"https"];   

  [request setValidatesSecureCertificate:NO];


也许有的asihttprequest框架是可以行得通的,可是我没成功过。说说我的解决方(ASIHTTPRequest.m必须是开发的

  1)ASIHTTPRequest.m中找到NSMutableDictionary*类型的sslProperties变量,添加一个键值对到该变量。

if (![self validatesSecureCertificate]) {

           [sslProperties setObject:(NSString *)kCFBooleanFalse forKey:(NSString *)kCFStreamSSLValidatesCertificateChain];

        }改成

if (![self validatesSecureCertificate]) {

            [sslProperties setObject:(NSString *)kCFBooleanFalse forKey:(NSString *)kCFStreamSSLValidatesCertificateChain];

            [sslProperties setObject:(NSString *)(CFStringRef *)kCFStreamSocketSecurityLevelSSLv3 forKey:(NSString *)kCFStreamSSLLevel];

        }

    然后我们在使用的时候直接设置[request setValidatesSecureCertificate:NO]即可。

  2)其实最好设置一个对外开发的属性变量,避免对其他代码造成影响,如下

     ASIHTTPRequest.h

     @property (assign) CFStringRef *sslSecurityLevel;

     ASIHTTPRequest.m

    @synthesize sslSecurityLevel;

     然后在.m文件中找到if (![self validatesSecureCertificate]) {

            [sslProperties setObject:(NSString *)kCFBooleanFalse forKey:(NSString *)kCFStreamSSLValidatesCertificateChain];

         },在下面添加如下代码

if ([self sslSecurityLevel] != nil) {

            [sslProperties setObject:(NSString *)[self sslSecurityLevel] forKey:(NSString *)kCFStreamSSLLevel];

        }

     最后在连接https的时候设置2个属性即可,

    [request setValidatesSecureCertificate:NO];

    [request setSslSecurityLevel:(CFStringRef *)kCFStreamSocketSecurityLevelSSLv3];


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值