美文网首页
使用AFNetworking 3做HTTPS网络请求示例代码

使用AFNetworking 3做HTTPS网络请求示例代码

作者: AnderQZ | 来源:发表于2016-12-29 13:45 被阅读22次

最近苹果强推HTTPS让人无奈之余,又多了些问题,记录一下,大家可参考,本人菜鸟,有错误的地方还请大神们指正。

今天说的是HTTPS下,使用AFNetworking 3来做网络请求,要修改两个地方,网络请求很常见,所以简单记录一下。

AFNetworking做网络请求,就需要先创建会话管理者:

AFHTTPSessionManager *sessionManage = [AFHTTPSessionManager manager];

然后就是创建URL的参数相关字典

NSDictionary *parameterDic = @{/*请求参数*/};

最后,就是请求网络数据

[sessionManage POST:@"https://www.baidu.com" parameters:parameterDic progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    NSLog(@"Success!😂 responseClass:%@ -- responseObject: %@", [responseObject class], responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    NSLog(@"Fail!😬Error: %@", error);
}];

常规步骤就是以上那些了,但是HTTPS请求时,你也许会发现以下的问题:

-1016错误:
Fail!😬Error: Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/html" UserInfo={com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x60800022ba40>
原因:

AFNetworking可接受的内容类型不包含“text/html”格式。

解决方法:

在AFNetworking文件夹中,找到
AFURLResponseSerialization.m
将原来的:

self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];

改成(其实就是加一个可接受类型"text/html"):

self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];

很快,你再次运行代码,可能又会出现另外一个错误。

3840错误:
Fail!😬Error: Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
原因:

大概就是没有设置好吧。🤷‍♂️

解决方法:

在创建会话者时,加上下面两行代码:

sessionManage.requestSerializer = [AFHTTPRequestSerializer serializer];
sessionManage.responseSerializer = [AFHTTPResponseSerializer serializer];

好了,运行,问题应该解决了吧!🐒

相关文章

网友评论

      本文标题:使用AFNetworking 3做HTTPS网络请求示例代码

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