大佬教程收集整理的这篇文章主要介绍了iphone – iOS开发:为什么我总是在第一次尝试中得到“连接失败发生”,但下一个成功?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
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}
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发送的每个请求使用持久连接的问题。
虽然这对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,请注明来意。