AFNetworkingNSURLErrorDomainerror-1012 afnetworking 1012

查看原文:http://www.heyuan110.com/?p=1165

昨天App上传文件发起PUT和POST请求都随机会出现报-1012错误,具体错误信息:

Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" UserInfo=0x758f120 {NSErrorFailingURLKey=https://api.com,NSErrorFailingURLStringKey=https://api.com}

查找了apple文档错误码意思是 NSURLErrorUserCancelledAuthentication =-1012
查看错误码相关信息

因为我们的App采用的是https请求,很明显这个错误和ssl相关,google了-1012错误可查阅的资料很少,不过还是从stackoverflow找到了蛛丝马迹。

工程第三方包是用cocoapod管理,AFNetworking也是用podinstall进来的,使AFNetworking支持https,参照之前写的文章AFNetworking支持https请求

pod install AFNetworking会报下面的错误

#ifndef __UTTYPE__#if __IPHONE_OS_VERSION_MIN_REQUIRED#pragma message("MobileCoreServices framework not found in project, or not included in precompiled header. Automatic MIME type detection when uploading files in multipart requests will not be available.")#else#pragma message("CoreServices framework not found in project, or not included in precompiled header. Automatic MIME type detection when uploading files in multipart requests will not be available.")#endif#endif

这个是缺少

#import <systemconfiguration /SystemConfiguration.h>#import <mobilecoreservices /MobileCoreServices.h>

其实我在工程pch文件已经添加了上面的import的,但是pods工程下面没自动添加,所以还是会包错,所以我自己手动去AFHTTPClient.h文件添加了,这样编译成功了也可以正常使用。我不知道你们在podinstall后AFNetworking报错你们怎么解决,有更好办法的烦请下面留意告知。扯远了,还是回到-1012的错误问题上。其实问题很简单,让AFNetworking支持nonself-signed cert 的https,你只需要#define_AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_添加这句到pch文件,但是如果使用的是cocoapod管理的,你需要写一个AFHTTPRequestOperation的subclass,写入下面的代码:

@implementation SRHTTPRequestOperation- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace{    if ([[protectionSpace authenticationMethod] isEqualToString:NSURLAuthenticationMethodServerTrust]) {        if ([self bypassSslCertValidation:protectionSpace])            return YES;        else            return [super connection:connection canAuthenticateAgainstProtectionSpace:protectionSpace];    }    return [super connection:connection canAuthenticateAgainstProtectionSpace:protectionSpace];}- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge{    if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {        if ([self bypassSslCertValidation:challenge.protectionSpace]) {            [challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];            return;        }        else            return [super connection:connection didReceiveAuthenticationChallenge:challenge];        return;    }}- (BOOL) bypassSslCertValidation:(NSURLProtectionSpace *) protectionSpace{    return NO;}@end

我没按上面的方法去做。换成了以前的搞法,取消了AFNetworking用cooped管理,直接把AFNetworking的包拖到工程里,然后在pch里正常添加

```
#define AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES

#import <systemconfiguration /SystemConfiguration.h>#import <mobilecoreservices /MobileCoreServices.h>

```
经过测试-1012的错误没出现了。参考stackoverflow

  

爱华网本文地址 » http://www.413yy.cn/a/25101013/187119.html

更多阅读

dnf绝望99层怎么打 dnf绝望96层怎么卡

dnf绝望99层怎么打——简介绝望之塔入场等级为70级,位于亡者峡谷。一共100层,全部通关后可以获得一个史诗罐子。可以消耗一定数量的金币来打开这个罐子,罐子中只会抽出50级以上所有职业的史诗武器,60级以上的史诗辅助装备以及史诗魔法石

ps cs4的永久序列号. ps cs4序列号永久免

ps cs4的永久序列号.——简介ps官网下载地址http://www.adobe.com/cn/products/photoshop/photoshopextended/pscs4的永久序列号ps cs4的永久序列号.——方法/步骤ps cs4的永久序列号. 1、首先说几个序列号:1330-1012-5095-2623-4

pscs4的永久序列号. ps cs4永久序列号

? ? ? ? ? ? ? ? ? ??ps?cs4的永久序列号首先说两个序列号:1330-1012-5095-2623-4716-32551325-1900-8433-2248-5594-1437 ?? ? ? ? ? ? ? ? ? ? ? ? ? ?1330-1816-6029-5752-3896-2872

针织衫女开衫薄长款 秋装女

秋装新品 女装 薄款 针织开衫 长款 披肩 宽松 针织衫外套找同款¥:27.00近日销量:2167笔 正品2012秋冬新品女款薄款针织开衫 长款 披肩 宽松大码外套毛衣找同款¥:29.00近日销量:1012笔 350

声明:《AFNetworkingNSURLErrorDomainerror-1012 afnetworking 1012》为网友又酷爱撩妹分享!如侵犯到您的合法权益请联系我们删除