俗話(huà)說(shuō)好記性不如爛筆頭。
用AFNetworking發(fā)送一個(gè)請(qǐng)求,今天突然碰到一個(gè)問(wèn)題:
Error Domain=NSURLErrorDomain Code=-999 "已取消"
幾乎之前沒(méi)有遇到這個(gè)問(wèn)題腰池。根據(jù)這個(gè)問(wèn)題查找啊隙疚,
說(shuō)添加安全策略壤追,及允許無(wú)效證書(shū)訪(fǎng)問(wèn)
就是設(shè)置AFHTTPSessionManager
下面兩個(gè)屬性
//客戶(hù)端是否信任非法證書(shū)
sessionManager.securityPolicy.allowInvalidCertificates = YES;
//是否在證書(shū)域字段中驗(yàn)證域名
sessionManager.securityPolicy.validatesDomainName = NO;
我一檢查啊。就是上面那樣設(shè)置的啊供屉,
最后有糾結(jié)了下行冰,發(fā)現(xiàn)持有這個(gè)網(wǎng)絡(luò)發(fā)送請(qǐng)求的對(duì)象被回收,我創(chuàng)建的調(diào)用時(shí)候是個(gè)局部變量,沒(méi)有引用他伶丐,導(dǎo)致持有的對(duì)象被收回悼做。從而導(dǎo)致了AF請(qǐng)求-999的取消操作。
產(chǎn)生這個(gè)問(wèn)題有以下幾個(gè)原因:
- 重復(fù)發(fā)送同一個(gè)請(qǐng)求哗魂,前一個(gè)請(qǐng)求未發(fā)出則被立刻取消
- 持有這個(gè)網(wǎng)絡(luò)發(fā)送請(qǐng)求的對(duì)象不存在了被消耗了肛走,應(yīng)該檢查下這個(gè)對(duì)象的生命周期
- 請(qǐng)求的URL錯(cuò)誤,如果指定了使用POST啡彬,卻在URL字符串后直接追加了參數(shù)字段和參數(shù)內(nèi)容而不是在消息體附加參數(shù)信息羹与,則會(huì)報(bào)此錯(cuò)誤。
- 可能是HTTPS的證書(shū)問(wèn)題 導(dǎo)致的庶灿,這個(gè)就要添加添加安全策略纵搁,及允許無(wú)效證書(shū)訪(fǎng)問(wèn)。