web-dev-qa-db-fra.com

code d'erreur iOS = -1003 "Impossible de trouver un serveur avec le nom d'hôte spécifié."

J'essaie de charger une image depuis l'URL sur l'iphone. L'image est là et je peux l'ouvrir dans un safari avec le même lien, mais pas dans l'application

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://.........

Code de demande:

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)!)
        }
    }

}
8
Async-

Dans mon cas, lorsque je connectais le compte de l'équipe de signature à Xcode, il était automatiquement switch sur l'App Sandbox dans Capabilities. Lorsque je l'éteins, je pouvais faire une demande de serveur sans aucun problème. 

 enter image description here

37
Udaya Sri

Le nom d'hôte dans votre URL est incorrect car le message que vous récupérez indique explicitement qu'il ne peut pas trouver un serveur portant ce nom d'hôte.

La cause la plus probable est que vous avez oublié de mettre une barre oblique entre l'URL de base et le courrier électronique, par exemple. si votre URL de base est 

http://example.com

et votre email est 

[email protected]

Vous construisez

http://[email protected]

Placez un point de rupture sur la ligne qui crée l'URL et inspectez la chaîne à partir de laquelle elle tente de la créer. Ce sera probablement alors assez évident de comprendre exactement ce que vous faites mal. 

1
JeremyP

Cette erreur suggérerait un problème lié au DNS. Il existe un problème avec le serveur DNS atteint via notre réseau WiFi. Nous changeons donc de serveur DNS et corrigeons ce problème. Supprimez le cache et réessayez.

S'il existe une URL, vous pouvez obtenir (au lieu de POST) sur le même serveur.

Et aussi, désactiver le wifi et utiliser la 3G fait disparaître l'erreur.

0
Sreejith s

Cela s'est produit dans mon cas, car l'un des chemins de nos serveurs de développement était interne à notre pare-feu/intranet/VPN et que mon appareil n'était pas connecté à notre réseau Wi-Fi interne. 

Frustrant et déroutant parce que cela fonctionnait dans le simulateur et non sur un appareil.

0
bshirley