Ios NSURLConnection GET请求返回-1005;“网络连接已断开”;
我正在尝试使用iOS 8 SDK上的XCode 6(Beta7 2)中的Ios NSURLConnection GET请求返回-1005;“网络连接已断开”;,ios,cocoa-touch,Ios,Cocoa Touch,我正在尝试使用iOS 8 SDK上的XCode 6(Beta7 2)中的NSURLConnection发出一个简单的GET请求,该请求因“代码1005,网络连接丢失”而失败。当我尝试从web获取或获取一些其他示例页面时,调用失败,但如果我向本地主机上的简单HTTP服务器发出请求(python-m SimpleHTTPServer),则调用成功。我还尝试过使用AFNetworkinglibrary(2.4.1)-使用NSURLConnection失败的URL也会使用library失败 这是我的密码
NSURLConnection
发出一个简单的GET请求,该请求因“代码1005,网络连接丢失”而失败。当我尝试从web获取或获取一些其他示例页面时,调用失败,但如果我向本地主机上的简单HTTP服务器发出请求(python-m SimpleHTTPServer
),则调用成功。我还尝试过使用AFNetworking
library(2.4.1)-使用NSURLConnection失败的URL也会使用library失败
这是我的密码-
NSString * url = @"http://0.0.0.0:8000";
// NSString * url = @"http://www.google.com";
NSLog(@"URL : %@", url);
// Mutable is probably not required, but just in case it REALLY WANTS me to set HTTP method
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[theRequest setHTTPMethod:@"GET"];
NSURLResponse *urlResponse = nil;
NSError *error = nil;
NSData * data = [NSURLConnection sendSynchronousRequest:theRequest
returningResponse:&urlResponse
error:&error];
if (error == nil) {
NSString *response = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(response);
} else {
NSString *response = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"%@", [error userInfo]);
}
日志:
我最近在iPhone6模拟器上看到互联网连接失败,导致了同样的错误。我的Mac电脑有一个正常的互联网连接,而模拟器没有。重新启动模拟器解决了这个问题。我已经尝试了谷歌至少15个答案的所有建议,但没有一个解决了我的问题,直到我尝试了以下完全解决了我的问题。看起来,Mac电脑上的Wi-Fi连接可能会损坏,因此,如果您删除正在使用的特定连接,然后再次连接(通过选择网络并再次输入密码),那么这将解决问题,不再可怕-1005“网络连接丢失”错误
- 转到Mac菜单栏上的Wi-Fi符号并“关闭Wi-Fi”
- 然后选择“打开网络首选项”(从底部的同一菜单)
- 在网络面板的右下角,选择“高级”
- 选择以前连接到的网络连接
- 点击此表下方的减号可删除此连接
- 点击此窗口的“OK”
- 点击网络窗口上的“应用”
- 返回菜单栏上的Wi-Fi符号并重新打开Wi-Fi
- 等待您的网络连接出现,然后选择它(由于您删除了连接信息,现在它将再次要求输入密码)
- 现在,它将记住这个新刷新的连接,它将解决这个问题李>
NSURLConnection GET request returns Code=-1005 "The network connection was lost."
解决方案是简单地退出模拟器,清理项目并重新运行项目。
这对我有用 我在iOS 9上的某些网络呼叫中始终遇到此错误。两个工作正常,但另外两个工作不正常
它原来是由我在请求主体中传递的一些不正确的参数引起的。。。我没想到会出现-1005错误。。。但是它做到了。。摆脱不必要的参数,使所有的工作 尝试更改http或json中的请求序列化。在我的例子中,这是json,然后我设置为http。现在,这是工作
[[VTNetworkingHelper sharedInstance] performRequestWithPath:@"Your url " withAuth:YES forMethod:@"POST" withRequestJSONSerialized:NO withParams:params withCompletionHandler:^(VTNetworkResponse *response) {
if (response.isSuccessful) {
}else {
}];
我有类似的问题,重启模拟器不起作用。在我的例子中,我能够交替地点击web服务,就像在奇数时间它将是成功的,在偶数时间它将我抛出这个错误。我知道这很奇怪,但不知怎么的,情况的确如此。在swift中使用以下方法解决了此问题:
let urlconfig = NSURLSessionConfiguration.defaultSessionConfiguration()
urlconfig.timeoutIntervalForRequest = 1
urlconfig.timeoutIntervalForResource = 1
let session = NSURLSession(configuration: urlconfig)
let task = session.dataTaskWithRequest(request){(data,response,error) in
//Processing
}
task.resume()
简单的样品溶液,多次测试,工作完美 //使用状态代码检查响应错误,如果得到-1005,则再次调用该api
kCFStreamErrorDomainKey 1是POSIX域,这意味着kCFStreamErrorCodeKey 57“未连接套接字”。Mac电脑上的防火墙是否不允许Xcode/simulator进行外部连接?@quellish我的Mac电脑上的防火墙已关闭。在我的情况下,_kCFStreamErrorCodeKey=57可能与请求发送到服务器的状态相匹配,但在服务器将响应发送回客户端之前,客户端已脱机。重试此类故障会导致在服务器数据库中创建两个相同的记录。不确定假设57表示“我发送了整个请求”是否安全。即使您现在脱机,您也可以安全地假定服务器将处理该请求。事实上,这是正确的答案!我重新启动了XCode,但不知何故从未想过重新启动模拟器。是的,它在重新启动模拟器后工作!非常感谢。这发生在我使用无线模拟器时,然后切换到有线连接。我甚至试过关掉无线。你们有人对此进行过雷达调查吗?Xcode 6.1和iPhone 6模拟器仍然存在这种情况。@Ben-G在关于同一问题的回答和评论中提到,已经提交了一些雷达。诚实之后,重新启动是最好的策略。这些不必要的参数在代码中的位置是什么?我也面临着类似的问题。恐怕我都记不起我当时在用什么应用了。。。但是,如果您只对请求应用必要的设置和参数,可能会有所帮助。如果您没有发送httpBody,请不要设置内容类型。例如,这是dope!我尝试了许多解决方案,但问题在于我传递给请求的参数。谢谢你的提示!!:)@克玛什
let urlconfig = NSURLSessionConfiguration.defaultSessionConfiguration()
urlconfig.timeoutIntervalForRequest = 1
urlconfig.timeoutIntervalForResource = 1
let session = NSURLSession(configuration: urlconfig)
let task = session.dataTaskWithRequest(request){(data,response,error) in
//Processing
}
task.resume()
if let strErrorReasonCode : Int = response.response?.statusCode {
if authentication_Errors_Range.contains(Alamofire_Error) {
self.POST(urlString, paramaters: paramaters, showLoader: showLoader, success: { (responseObject) in
if response.result.isSuccess {
if let value = response.result.value {
let dictResponce = self.isValidated(value as AnyObject)
if dictResponce.0 == true {
success(dictResponce.1)
}
else {
failure(dictResponce.1)
}
}
}
}, failure: {_ in
failure(jsonResponce)
})
}
}