我有一个简单的GET请求,我试图在macOS应用程序中运行它。但是,我一直收到以下错误:
找不到具有指定主机名的服务器。
我正在尝试下载JSON数据的URL是:
https://suggestqueries.google.com/complete/search?client=safari&q=mercedes
如果我在浏览器或在线API测试器网站(如Hurl.it)中测试它,请求就能正常工作。然后自动下载JSON文件。
但是,通过我的macOS应用程序运行请求不起作用。这是我的代码:
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请求,我不明白为什么数据不会加载。
发布于 2017-10-27 10:41:18
我发现了问题所在,尽管我已经将Allow Arbitrary Loads设置为YES,但这还不足以启用网络请求。

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

发布于 2020-07-31 17:42:17
在XCode 11.5中,我必须检查这两个标志

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

你必须关掉“应用程序沙盒”。
请转至:
xcode Project-> Capabilities -> App SandBox
https://stackoverflow.com/questions/46971824
复制相似问题