【问题标题】:NSURLConnection Lost ConnectionNSURLConnection 失去连接
【发布时间】:2013-05-07 19:42:04
【问题描述】:

我有一个拥有 100k+ 用户的应用程序,它使用 SOAP Web 服务进行连接。对大多数用户来说一切都很好,除了有时使用 NSURLConnection 我不断收到错误:

Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." UserInfo=0xac16c70 {NSErrorFailingURLStringKey=https://mail.scripps.org:443/ews/Exchange.asmx, NSErrorFailingURLKey=https://mail.scripps.org:443/ews/Exchange.asmx, NSLocalizedDescription=The network connection was lost., NSUnderlyingError=0x133b0eb0 "The network connection was lost."}

这只发生在某些服务器上。服务器具有 NTLM 身份验证,该身份验证在 95% 的时间都有效,但由于某种原因,我收到了错误,我不知道为什么。

任何帮助表示赞赏。

【问题讨论】:

标签: ios objective-c web-services soap nsurlconnection


【解决方案1】:

这个Question 也发现了我遇到的问题。 我使用的是 jsonrpc,而不是肥皂。

解决方案很简单。我需要:

[myMutableURLRequestObject setHTTPMethod:@"POST"];

【讨论】:

    【解决方案2】:

    发生网络连接故障,您只需要优雅地处理它们。一种解决方案可能是在您确定存在network connection 后重试连接1 次或多次,直到连接成功。下面的粗略示例:

    if([error domain] == NSURLErrorDomain && 
        [error code] == NSURLErrorNetworkConnectionLost && 
        retryCount < kMaxRetryCount)
    {
        [self retry];
        ++retryCount;
    }
    

    【讨论】:

    • 我已经这样做了。对于这个特定的服务器,无论如何,NTLM 只会遇到一次挑战。然而,它似乎在 NTLM 之后有多个 NSURLAuthenticationMethodServerTrust 挑战,而其他服务器只有一次 NSURLAuthenticationMethodServerTrust。
    • 所以这发生在特定服务器的 100% 时间?或者只有 5% 的时间用于该特定服务器?
    • 100% 的时间用于该特定服务器,但一般情况下 95% 的时间用于我的所有用户。
    猜你喜欢
    • 2013-09-02
    • 1970-01-01
    • 2015-09-20
    • 2023-01-23
    • 2014-02-28
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多