ios - iOS 应用程序中删除请求后奇怪超时

标签 ios ruby-on-rails ruby-on-rails-5

我有一个带有 Rails 5.2 后端的 iOS 应用程序。在应用程序中,用户可以对帖子添加点赞并将其删除。当用户从应用程序中删除类似请求时,请求已完成,但是任何后续请求都会超时。几分钟后,一切恢复正常,应用程序可以与服务器通信。

虽然应用程序抛出超时,但服务器工作正常,日志中没有任何特殊内容,因此看起来问题出在应用程序中。奇怪的是,如果我尝试访问同一网络上的网络服务器(当应用程序返回超时时),此请求也会超时(但可以通过其他网络访问它,没有问题)。在本地,即使在 rails 生产模式和非常快的互联网连接上,也不会出现问题(光纤)。

此外,当应用程序抛出超时时,Xcode 调试器显示 CPU 使用率为 0%,并且应用程序未发送/接收任何请求。

Rails 服务器在删除操作后返回:

2019-03-08T13:40:08.849867461Z app[web.1]: [4002a8f5-d322-41b7-8e00-ac2fed71296e] Started DELETE "/api/v3/likes/remove.json?likeable_id=492&likeable_type=Post" for 37.47.129.26 at 2019-03-08 13:40:08 +0000
2019-03-08T13:40:08.861245329Z app[web.1]: I, [2019-03-08T13:40:08.861060 #296]  INFO -- :
2019-03-08T13:40:08.861279390Z app[web.1]: I, [2019-03-08T13:40:08.861184 #296]  INFO -- : Started DELETE "/api/v3/likes/remove.json" at 2019-03-08 13:40:08 +0000
2019-03-08T13:40:08.861289850Z app[web.1]: I, [2019-03-08T13:40:08.861221 #296]  INFO -- : Processing by Api::V3::Likes/likes/remove
2019-03-08T13:40:08.861336511Z app[web.1]: I, [2019-03-08T13:40:08.861278 #296]  INFO -- :   Parameters: {"likeable_id"=>"492", "likeable_type"=>"Post", "format"=>"json"}
2019-03-08T13:40:08.922335770Z app[web.1]: [4002a8f5-d322-41b7-8e00-ac2fed71296e] HEADERS: {"Version"=>"HTTP/1.1", "Connection"=>"upgrade", "Host"=>"host.net", "X-Forwarded-Proto"=>"http", "X-Forwarded-For"=>"37.47.129.26, 192.168.2.57", "X-Forwarded-Port"=>"80", "X-Request-Start"=>"1552052408.848", "X-Client-Ip"=>"37.47.129.26", "X-Real-Ip"=>"37.47.129.26", "Accept"=>"*/*", "User-Agent"=>"AppName/3.8.3 (iPhone; iOS 12.2; Scale/2.00)", "Accept-Language"=>"en", "Authorization"=>"Bearer access_token", "Accept-Encoding"=>"gzip, deflate"}
2019-03-08T13:40:08.922492953Z app[web.1]: I, [2019-03-08T13:40:08.922411 #296]  INFO -- : Completed 200 in 61.53ms
2019-03-08T13:40:08.922522623Z app[web.1]: I, [2019-03-08T13:40:08.922465 #296]  INFO -- :

超时时记录 Xcode 的样子:

2019-03-08 14:41:39.712252+0100 AppName[19582:365699] Task <FA2C12EF-434F-4BF4-AC74-F779C1A86D36>.<1> finished with error - code: -1001
2019-03-08 14:41:39.712490+0100 AppName[19582:365702] Task <FA2C12EF-434F-4BF4-AC74-F779C1A86D36>.<1> load failed with error Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x600003ffe3d0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <FA2C12EF-434F-4BF4-AC74-F779C1A86D36>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDataTask <FA2C12EF-434F-4BF4-AC74-F779C1A86D36>.<1>"
), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=http://host.net/api/v3/users_registrations.json, NSErrorFailingURLKey=http://host.net/api/v3/users_registrations.json, _kCFStreamErrorDomainKey=4} [-1001]

最佳答案

事实证明,路由器在不使用 https 的情况下阻止了所有删除操作。

关于ios - iOS 应用程序中删除请求后奇怪超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55064936/

相关文章:

ios - MKAnnotation不显示相应的图标

ruby-on-rails - 如何在 Ruby on Rails View 中路由子文件夹?

ruby-on-rails - Rails - 如何在 Controller 内使用助手

ruby-on-rails - 尝试在 Rails 5 的 has_many 范围内引用 self

ruby-on-rails - 如何拥有可维护的用户名黑名单

ios - 使 NSArray IBInspectable

ios - TableViewCell 滑动 Action 中的图像

ruby-on-rails - Rails 4 gmaps4rails - 如何在 gmaps4rails gem 的标记信息窗口中包含指向 "show" View 的链接

objective-c - 处理自定义组件 : subclass UIView or UIViewController?

ruby-on-rails - 自动用星号标记必填字段,不起作用