美文网首页
IOS开发小记

IOS开发小记

作者: 西蜀 | 来源:发表于2018-04-18 11:27 被阅读77次

    1.对服务器进行Https请求

    -服务器:获取证书后需提供文件***.pem文件给IOS开发

    -IOS开发:将得到的pem文件双击加入钥匙串后导出一份cer

    -项目:将对应的cer文件放置在文件中,并在网络请求的方法中添加以下代码

    + (AFSecurityPolicy *)customSecurityPolicy{

        NSString * cerPath = [[NSBundle mainBundle] pathForResource:@"www.yqb168.com" ofType:@"cer"];

        NSData * cerData = [NSData dataWithContentsOfFile:cerPath];

        NSSet * cerSet = [NSSet setWithObjects:cerData, nil];

        AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

        // 是否验证域名

        securityPolicy.validatesDomainName = YES;

        // 信任非法证书(自签名证书)

        securityPolicy.allowInvalidCertificates = NO;

        // 设置证书

        [securityPolicy setPinnedCertificates:cerSet];

        return securityPolicy;

    }

    2.数据请求报错:The data couldn’t be read because it isn’t in the correct format.

    -问题1:后台返回数据格式有误;

    -问题2:app请求参数数据序列化的格式(requestSerializer)不正确;

    -问题3:其他。

    后台及其他问题暂不考虑,IOS app端更改requestSerializer设置:AFHTTPRequestSerializer/AFJSONRequestSerializer

    + (AFHTTPSessionManager *)apiRequest:(AFHTTPRequestSerializer *)serializer{

        serializer = [AFJSONRequestSerializer serializer];

        AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

        AFSecurityPolicy *securityPolicy = [self customSecurityPolicy]; //https设置,http可直接alloc后使用

        [manager setSecurityPolicy:securityPolicy];

        [manager.responseSerializer setAcceptableContentTypes:[NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",@"text/plain", nil]];

    manager.responseSerializer.acceptableContentTypes=[manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];//Very Important

        serializer.timeoutInterval = 40.f;

        manager.requestSerializer = serializer;

        return manager;

    }

    待续。

    相关文章

      网友评论

          本文标题:IOS开发小记

          本文链接:https://www.haomeiwen.com/subject/mjlvkftx.html