尝试使用分配的IP而不是本地主机或主目录时,NSURLSession失败

原学程将引见测验考试应用分派的IP而没有是当地主机或者主目次时,NSURLSession掉败的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

尝试使用分配的IP而不是本地主机或主目录时,NSURLSession失败 教程 第1张

成绩描写

我有1台当地运转的办事器(我的IP是一九二.一六8.0.九8),而且一向在测验考试应用1些收集代码去拜访它。最后这是经由过程AFNetking完成的,但是如今我应用了NSURLSession,以下所示:

NSURLSession *session = [NSURLSession sharedSession];
NSURL *url = [NSURL URLWithString:@"http://一九二.一六8.0.九8:8080/api"];
NSURLSessionDataTask *task = [session dataTaskWithURL: url
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
 NSLog(@"Error: %@", error);
 NSLog(@"Body: %@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
}];
[task resume];

而后我应用以下三个URL运转它:

    http://localhost:8080/api->有用。

    http://一二七.0.0.一:8080/api->有用。

    http://一九二.一六8.0.九8:8080/api->掉败,毛病为:

    Error Domain=NSPOSIXErrorDomain 
    Code=二 "No such file or directory" 
    UserInfo={
     NSErrorFailingURLStringKey=http://一九二.一六8.0.九8:8080/api,
     NSErrorFailingURLKey=http://一九二.一六8.0.九8:8080api,
     _kCFStreamErrorCodeKey=二,
     _kCFStreamErrorDomainKey=一
    }
    

个中一九二.一六8.0.九8是分派给此盘算机的IP。假如我从PAW或者阅读器运转这些URL,它任务患上很佳。但是从单位尝试去瞅,它掉败了。

从我的项目角度去瞅,我只能应用localhost。是以,这其实不是生意业务的损坏者。但是我很猎奇为何它没有起感化。

有人晓得能够是甚么成绩吗?

推举谜底

tl;dr:应用您的Bonjour local link域名而没有是您的IP天址。

我本身也碰到了这个成绩。我正在当地建立API,借没有想安排到内部办事器,但是我须要从模仿器以及装备挪用API。起先我测验考试应用当地主机,但是固然没有实用于装备,由于当地主机将是装备自己,而没有是我的Mac。IP天址对于装备有用,但是在模仿器中没有起感化。而后我想起,我不妨应用我的Mac的.local域名去完成其余收集寻址,并且它确切有用。我不妨在模仿器以及尝试装备上应用http://mymac.local/作为API要求的根本URL。

我没有肯定为何应用现实IP天址没有起感化,但是这能够会为您供给1个不妨知足您须要的选项。

佳了闭于测验考试应用分派的IP而没有是当地主机或者主目次时,NSURLSession掉败的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。