iOS kCFErrorDomainCFNetwork Code=303 错误解决方案

背景

最近测试反馈,部分机型上面访问会员H5页面,页面白屏,而且极其容易复现。

过程

我们经过Debug 发现,WKWebView 抛出了以下错误:

Error Domain=kCFErrorDomainCFNetwork Code=303 "(null)" UserInfo={_WKRecoveryAttempterErrorKey=<WKReloadFrameErrorRecoveryAttempter: 0x2825dd760>, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <C69C2120-3520-4CBD-96B6-C3A8D635EF53>.<98>, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2205, networkTaskDescription=LocalDataTask <C69C2120-3520-4CBD-96B6-C3A8D635EF53>.<98>}

通过官方文档 并没有获取到有效的线索。
然后通过抓包工具,抓包查看相关请求。发现请求失败的错误为:

Remote server closed the connection before sending response header

看这个错误的意思是与请求头Header相关。
我们通过抓包反复测试,发现当请求中Cookie的大小超过5k后,会复现该问题。
iOS kCFErrorDomainCFNetwork Code=303 错误解决方案_第1张图片

iOS kCFErrorDomainCFNetwork Code=303 错误解决方案_第2张图片

找到原因后,我们排查Cookie比较大的原因,通过查看Cookie发现,里面会有一些重复的Cookie,然后让iOS相关同学去排查代码逻辑发现,我们WKWebView在往请求中同步Cookie时,没有去重,导致Cookie会重复追加,找到原因后,优化代码解决了该问题。所以请求时要保证我们Cookie不要超过5K。

你可能感兴趣的:(iOS,ios)