如果Socket.io已连接,Alamofire请求始终失败并显示“请求超时”

12

如果 socket.io 已连接,则 Alamofire 不按预期工作,始终会收到请求超时错误。如果我禁用 Socket.io,则 Alamofire 可以正常工作。

这是我收到的错误信息。

Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." 
UserInfo={NSUnderlyingError=0x60800044c720 
{Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" 
UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}},
NSErrorFailingURLStringKey=https://enpoint.json, NSErrorFailingURLKey=https://enpoint.json, 
_kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}

并且这个

_tcp_connection_write_eof_block_invoke Write close callback received error: [89] Operation canceled

类似的问题在git上报告了:https://github.com/Alamofire/Alamofire/issues/1545,但没有答案。

我不知道我做错了什么!任何帮助将不胜感激。

1个回答

5
我通过更改alamofire参数编码方式来解决了这个问题。 默认情况下,如果您没有传递任何编码参数,Alamofire会将编码设置为URLEncoding。 对于GETDELETE请求,请使用URLEncoding。 对于所有其他请求,请使用JSONEncoding.default(API应该支持此选项)。
我仍然不确定为什么在没有套接字的情况下可以工作,而开启套接字后不能工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接