具有服务器发送事件的URLSession有时返回kCFErrorDomainCFNetwork 303

时间:2017-06-09 13:27:32

标签: ios server-sent-events urlsession

在我们的应用程序中,我们通过Server-Sent Events请求信息流。 为此,我们使用小型图书馆IKEventSource 引擎盖使用Foundation.URLSession

此信息以小JSON包发送,例如:

{"type":"update","data":{"id":"1234","name":"someName","someOtherField":33,"size":"20","someAddress":"Awesome Street 111"}}

现在这对我们来说非常有用,但我们注意到有时会出现以下错误:

Error Domain=kCFErrorDomainCFNetwork Code=303 "(null)" UserInfo={NSErrorPeerAddressKey=<CFData 0x610000a84510 [0x103ccbe40]>{length = 16, capacity = 16, bytes = 0x100201bbb9131fbd0000000000000000}, _kCFStreamErrorCodeKey=-2201, _kCFStreamErrorDomainKey=4}

我理解的是kCFErrorHTTPParseFailure它试图解析的字符串似乎只是JSON包的一部分,如:

{"type":"update","data":{"id":"1234","name":"so

我们目前的理解是,URLSession正在缓冲数据,有时会填满,最后一部分将被删除。 我们可以使用curl http://our.service.com在终端中重现这一点,并查看curl -N http://our.service.com

的工作示例

有人知道如何将此选项添加到URLSessionURLSessionConfigurationURLSessionTask。 或者是否有人有其他解释或解决方案(可能是服务器端) 有了这个错误,我们的用户有时会错过数据的更新,我们认为这是其他一些无法解释的反馈的原因。

BTW我们在相应的Android应用中遇到了同样的问题

0 个答案:

没有答案