错误域= NSURLErrorDomain代码= -1003"找不到具有指定主机名的服务器

shr*_*yer 8 objective-c nsurlconnection ios

当我尝试在设备上运行应用程序时出现此错误.当我在模拟器上运行它并且post请求正常工作时,我没有收到此错误.这是我的代码片段:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url    cachePolicy:NSURLCacheStorageNotAllowed timeoutInterval:300.f];
[request setHTTPMethod:@"POST"];

NSData* data = [paramString dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.谢谢

sar*_*ata 16

使用 Xcode 11.2.1 处理 macOS 项目时,我遇到了同样的问题。

这里的修复是:

  • 在项目资源管理器中单击项目
  • 选择签名和功能选项卡
  • 选中 AppSandbox 部分中的“网络:传出连接(客户端)”复选框

  • @JoCa,我相信它仅适用于 macOS 项目,因此您不会在 iOS 项目中看到它。也把我扔了一分钟。 (2认同)

JoG*_*oFo 11

此错误通常会提示DNS相关问题.检查设备上的DNS设置并确认您可以使用Safari或其他浏览器浏览互联网(通过访问之前未访问过的站点进行双重检查以确保未缓存).

如果有一个url,你可以在同一台服务器上获取(而不是POST),尝试直接在设备上的Safari中访问它.

  • 嘿问题解决了吗?我有一个类似的问题我在Safari中尝试了GET请求并且其工作正常但在我的应用程序中我得到了同样的错误 (3认同)

小智 5

模拟器使用您的计算机网络连接,因此我建议检查系统偏好设置 > 网络 > 高级 > 代理 > 自动代理配置:您必须禁用自动配置。