当前位置: 首页 > ops >正文

Error:kCFStreamErrorCodeKey=-2102 Domain=kCFErrorDomainCFNetwork Code=-1001 - iOS

之前早已调通的接口,因有新业务叠加新增了一些数据字段,之后再次调试接口的时候请求等待延迟至设定超时时间后出现了如下异常:

[discovery] errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 "query cancelled" UserInfo={NSLocalizedDescription=query cancelled}Task <C0BF69B6-6E49-44ED-B1E1-3E03212496EE>.<1> finished with error - code: -1001
Task <C0BF69B6-6E49-44ED-B1E1-3E03212496EE>.<1> load failed with error Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x6000011ad8f0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalUploadTask <C0BF69B6-6E49-44ED-B1E1-3E03212496EE>.
<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=("LocalUploadTask <C0BF69B6-6E49-44ED-B1E1-3E03212496EE>.<1>"), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://testEnvironment.xxx.org.cn/cres-api/api/account/app/2a258832847d3c8669755bae6c415b, NSErrorFailingURLKey=https://testEnvironment.xxx.org.cn/uums-api/api/account/app/2a258832847d3c8669755bae6c415b, _kCFStreamErrorDomainKey=4} [-1001]

首先,从表象来看起初怀疑帐号时效性过期了,服务端的身份验证没通过,便尝试了重新登录了该帐号再次提交修改后发起请求,依然抛回如上异常;后与服务端确认服务处于正常启着的状态 emmm 。。。因该接口其它地方也有一处调用,便尝试着去另一处页面发起请求 what 。。。回调成功 OMG 。。。
其次,开始再次查找问题的原因,因为两个地方都需要调用该接口,请求方法是早已封装好的,供两处分别调用,所有既然有一处的业务可以正常调用成功,首先排除掉方法封装问题;
再其次,因为新业务逻辑中新增了一些字段,新增字段之前接口状态也处于正常状态,便依次尝试是否于此有所关联关系,删除一部分字段后再次尝试发起请求,秒接收回调状态。。。灵光一现貌似 get 到一些事情将要发生,继续以此方式尝试;
最终,发现因服务器邮箱字段校验耗时太久导致未能在该请求超时 timeoutInterval 前将回调状态返回,接口默认判定为超时异常处理 。。。再次将超时时长放宽后发现可以正常接收到数据,只是时长较久。。。反馈至服务端进行优化后搞定 。。。

 

解决办法

如上排查问题叙述的有点多,不过摸索的过程还是蛮有趣的;
通过如上分析解决方法如下:
1.服务端服务是否处于正常启着的状态;
2.尝试延迟 timeoutInterval 的超时时长后尝试是否可以正常接收到接口回调状态;
3.服务端排查接收前端传输数据中的字段是否存在有较长的验证等类似相关业务逻辑导致回调时长很慢,最终导致的请求超时。


以上便是此次分享的全部内容,异常情况多种多样可能仍会存在没有涵盖其中的异常状况,欢迎大家多多补充 :)

http://www.xdnf.cn/news/11428.html

相关文章:

  • 【CSS】font-weight设置为500显示不出加粗效果
  • WeX5学习笔记
  • 关于斐波拉契数列(Fibonacci)
  • 基数统计算法--HyperLogLog
  • 当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值
  • serverlet学习
  • [全程动图]解决Offline Explorer崩溃闪退的问题和一些小技巧(如何下载js、100线程下载)
  • <html> 从0到1的教学实践分享(全网最全)
  • 数据哪里找?200个源数据网站全给你!
  • 如何在路由器上设置PPPoE(ADSL虚拟拨号)上网,即(宽带拨号)?
  • 海量数据处理之Bloom Filter详解
  • MAX10片内User Flash的使用
  • WebWork介绍
  • Kotlin入门学习(非常详细),从零基础入门到精通,看完这一篇就够了
  • jmeter之jtl文件解析(生成测试报告)
  • C语言程序设计(初识C语言后部分)
  • Java中常用术语简称
  • 小米10Pro手机双击android,小米10pro上手感受
  • Data Matrix码
  • DLX算法
  • 操作系统sp1、sp2、sp3是什么意思
  • SQL的索引详细介绍
  • 什么是脚本,脚本语言?
  • biji
  • BitBlt函数用法
  • ByConity 替换 ClickHouse 构建 OLAP 数据平台,资源成本大幅降低
  • EDK2之debug
  • 专业之选,Duplicate Cleaner Pro,高效清理重复文件,代码与硬盘双清爽!
  • 一句话明白:什么是统计?什么是概率?
  • 华为交换机基本命令