iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – iOS开发:为什么我总是在第一次尝试中得到“连接失败发生”,但下一个成功?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的iOS应用程序中使用ASIhttprequest库来对我的Rails 3 Web应用程序进行RESTful请求。我第一次尝试向我的网络应用程序发出POST请求时看到一个奇怪而有些一致的错误,但是在第二次尝试后POST请求工作正常。确切的错误是…

Error Domain=ASIhttprequestErrorDomain Code=1 "A connection failure occurred" UserInfo=0xb513740 {NSUnderlyingError=0xb5135a0 "The operation Couldn’t be completed. (kcfErrorDomainCFNetwork error -1005.)",NSLocalizedDescription=A connection failure occurreD}

这是我的ASIhttprequest代码进行POST请求…

NSURL *url = [NSURL URLWithString:[NSString StringWithFormat:@"http://myrails3app.heroku.com/tournaments/%d/register.json",tid]];
    __block ASIFormDatarequest *request = [ASIFormDatarequest requestWithURL:url];
    [request setrequestMethod:@"POST"];
    [request addPostValue:username forKey:@"username"];

    [request setCompletionBlock:^
    {
        NSData *responseData = [request responseData];     
        NSLog(@"success!");
    }];

    // Set the code to be called when the request fails
    [request setFailedBlock:^
     {
         NSError *error = [request error];
         NSLog(@"Error: %@",[error localizedDescription]);
     }];

    // Start the request
    [request startAsynchronous];

值得一提的是,当它出错时,它的错误很快就出错了!另外,对于什么值得,我的铁路3应用程序,我做POST请求是托管在Heroku你的想法?

非常感谢你的智慧!

解决方法

这个问题我很难找出原因。问题在于ASIhttprequest本身(iOS),而不是rails代码

要做一个很长的故事,问题是针对ASIhttprequest发送的每个请求使用持久连接的问题。

然这对GET请求有好处,但大多数服务器实现不允许与POST请求一起使用持久连接。

我真的没有时间深入调查服务器端的东西,但我认为问题在于应该发送(不包括)的请求的100-ConTinue头,它附有身体(因此PUT / POST)。如果你想更深入地了解我在说什么,请参阅规格表:http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html

因此,ASIhttprequest使用的持久连接等待发送100个响应,从不发送。所以最终超时了。

一个修复是将persistentConnection设置为NO,您的帖子请求如下所示:

ASIhttprequest *req                     = [ASIhttprequest requestWithURL:url];
req.shouldAttemptPersistentConnection   = NO;

大佬总结

以上是大佬教程为你收集整理的iphone – iOS开发:为什么我总是在第一次尝试中得到“连接失败发生”,但下一个成功?全部内容,希望文章能够帮你解决iphone – iOS开发:为什么我总是在第一次尝试中得到“连接失败发生”,但下一个成功?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。