swift iOS错误代码=-1003“找不到具有指定主机名的服务器,”

bnl4lu3b  于 2023-01-19  发布在  Swift
关注(0)|答案(6)|浏览(1027)

我试图从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)!)
        }
    }

}
6yt4nkrj

6yt4nkrj1#

您的URL中的主机名是错误的,因为您收到的消息明确指出它找不到具有该主机名的服务器。
最可能的原因是您忘记在基本URL和电子邮件之间加上正斜杠,例如,如果您的基本URL是

http://example.com

你的邮箱是

jeremyp@example.com

你建造

http://example.comjeremyp@example.com

在创建URL的行上设置一个断点,然后检查创建URL的字符串,这样就很容易看出你做错了什么。

dluptydi

dluptydi2#

这是网络错误,这个问题为我修复了关闭/打开我的网络,并再次运行...
这只是我的经验,并不总是正确的,因为每一种情况都是不同的,可以用不同的方式解决。

bcs8qyzn

bcs8qyzn3#

在我的例子中,当我把签约团队账号连接到Xcode时,它会自动打开功能中的应用程序沙盒。当我关闭它时,我可以毫无问题地进行服务器请求。

ru9i0ody

ru9i0ody4#

比Udaya Sri的回答稍有改进:
显式允许网络连接,同时保持沙箱处于启用状态,如下所示:

ehxuflar

ehxuflar5#

在我的案例中发生这种情况是因为我们的开发服务器中的一个路径在防火墙/内部网/VPN的内部,而我的设备不在我们的内部wi-fi上。
令人沮丧和困惑,因为它是在模拟器中工作,而不是在设备上。

hsvhsicv

hsvhsicv6#

此错误可能是DNS相关问题。通过我们的WiFi网络访问的DNS服务器存在一些问题。因此,我们更改DNS服务器并修复此问题。删除缓存,然后重试。
如果有一个url,你可以在同一个服务器上GET(而不是POST)。
而且,关闭WiFi和使用3G可以使错误消失。

相关问题