首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网络请求失败- NSURLSession - App Xcode 9

网络请求失败- NSURLSession - App Xcode 9
EN

Stack Overflow用户
提问于 2017-10-27 09:29:56
回答 4查看 3.5K关注 0票数 5

我有一个简单的GET请求,我试图在macOS应用程序中运行它。但是,我一直收到以下错误:

找不到具有指定主机名的服务器。

我正在尝试下载JSON数据的URL是:

https://suggestqueries.google.com/complete/search?client=safari&q=mercedes

如果我在浏览器或在线API测试器网站(如Hurl.it)中测试它,请求就能正常工作。然后自动下载JSON文件。

但是,通过我的macOS应用程序运行请求不起作用。这是我的代码:

代码语言:javascript
复制
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://suggestqueries.google.com/complete/search?client=safari&q=mercedes"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
[request setHTTPMethod:@"GET"];
    
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
    
[[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        
    NSLog(@"Data: %@", data);
    NSLog(@"Response: %@", response);
    NSLog(@"Error: %@", error);
        
}] resume];

以下是完整的错误日志:

dnssd_clientstub ConnectToServer:->()-> No of tries: 1 dnssd_clientstub ConnectToServer: connect()-> No of tries: 2 dnssd_clientstub ConnectToServer: connect()-> No of tries: 3 dnssd_clientstub ConnectToServer: connect() failed 路径:/var/run/mDNSResponder套接字:6错误:-1 Errno:1操作不允许-10-27 09:58:31.610493+0100搜索建议[] nw_resolver_create_dns_service_locked DNSServiceCreateDelegateConnection失败: ServiceNotRunning(-65563) TCP失败1:0x600000164080: 10:-72000 Err(-65563)任务<12212C3B-8606-8606-49C2-BD72 72-AEBD575DB638>。<1> HTTP加载失败(错误代码:-1003 10:-72000)任务<12212C3B-8606-49C2-AD575DB638> 数据:(null)响应:(null)错误:错误Domain=NSURLErrorDomain代码=-1003“无法找到具有指定主机名的服务器。UserInfo={NSUnderlyingError=0x60400004fa20 { Domain=kCFErrorDomainCFNetwork代码=-1003 "(null)“UserInfo={kCFStreamErrorCodeKey=-72000,_kCFStreamErrorDomainKey=10},NSErrorFailingURLStringKey=https://www.suggestqueries.google.com/complete/search?client=safari&q=mercedes,NSErrorFailingURLKey=https://www.suggestqueries.google.com/complete/search?client=safari&q=mercedes,_kCFStreamErrorDomainKey=10,_kCFStreamErrorCodeKey=-72000,无法找到具有指定主机名的NSLocalizedDescription=A服务器}。

我做错了什么?这只是一个简单的GET请求,我不明白为什么数据不会加载。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-10-27 10:41:18

我发现了问题所在,尽管我已经将Allow Arbitrary Loads设置为YES,但这还不足以启用网络请求。

Xcode 9中有一个名为App Sandbox的新设置,它也可以阻止传入/传出网络连接!我不得不关掉它,然后所有的网络请求都开始工作了。

票数 16
EN

Stack Overflow用户

发布于 2020-07-31 17:42:17

在XCode 11.5中,我必须检查这两个标志

票数 5
EN

Stack Overflow用户

发布于 2018-09-05 13:29:39

你必须关掉“应用程序沙盒”。

请转至:

xcode Project-> Capabilities -> App SandBox

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46971824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档