我正在尝试从iphone上的URL加载图像,图像在那里,我可以在safari中使用相同的链接打开它,但不能在应用程序中打开它:
Error Domain=NSURLErrorDomain Code=-1003 "A server with the specified hostname
could not be found." UserInfo={NSUnderlyingError=0x17024f810
{Error Domain=kCFErrorDomainCFNetwork Code=-1003 "(null)"
UserInfo={_kCFStreamErrorCodeKey=50331647, _kCFStreamErrorDomainKey=6147928288}},
NSErrorFailingURLStringKey=https://........, NSErrorFailingURLKey=https://.........
请求代码:
func downloadImage(userEmail: String, onCompletion: @escaping (UIImage) -> Void) {
print("Download Started")
let route = "\(baseURL as String)\(userEmail as String)\(baseURLparameters as String)"
let url = URL(string: route)
getDataFromUrl(url: url!) { (data, response, error) in
guard let data = data, error == nil else {
print("===failed:", error ?? "dunno")
print("===url:", url?.absoluteString ?? "dunno")
return
}
print(response?.suggestedFilename ?? url!.lastPathComponent )
print("Download Finished")
DispatchQueue.main.async() { () -> Void in
onCompletion(UIImage(data: data)!)
}
}
}
您的URL中的主机名是错误的,因为您收到的消息明确指出它无法找到具有该主机名的服务器。
最可能的原因是您忘记在基本URL和电子邮件之间添加正斜杠,例如如果您的基本URL是
http://example.com
你的电子邮件是
[email protected]
你构建
http://[email protected]
在创建URL的行上放置一个断点,并检查它尝试从中创建URL的字符串。然后很可能很明显你做错了什么。
此错误表明与DNS相关的问题。通过我们的WiFi网络到达DNS服务器有一些问题。所以我们更改DNS服务器并解决此问题。删除缓存,然后重试。
如果有网址,您可以在同一台服务器上获取(而不是POST)。
此外,关闭wifi和使用3G会使错误消失。
这种情况发生在我的情况下,因为我们的开发服务器中的一条路径是我们的防火墙/内部网/ VPN的内部,而我的设备不在我们的内部Wi-Fi上。
令人沮丧和困惑,因为它在模拟器中工作而不是在设备上工作。