web-dev-qa-db-fra.com

URL non prise en charge dans NSURLRequest

Si j'exécute cette requête à partir de mon terminal, je peux voir les requêtes JSON normalement:

curl -XGET 192.168.0.6:8888/scripts/data/backend2/index.php/name/_all

Mon code pour NSURlRequest est le suivant:

 NSURLRequest *request = [NSURLRequest requestWithURL:
                             [NSURL URLWithString:@"192.168.0.6:8888/scripts/data/backend2/index.php/name/_all"]];

    [[NSURLConnection alloc] initWithRequest:request delegate:self];

Et j'obtiens cette erreur:

didFailWithError
2013-11-29 22:31:08.164 Ski Greece[607:a0b] Connection failed: Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo=0xcd042d0 {NSErrorFailingURLStringKey=192.168.0.6:8888/scripts/data/backend2/index.php/name/_all, NSErrorFailingURLKey=192.168.0.6:8888/scripts/data/backend2/index.php/name/_all, NSLocalizedDescription=unsupported URL, NSUnderlyingError=0xdbdcc70 "unsupported URL"}

Comment puis-je appeler cet URL? Je ne peux pas accéder au code du serveur. Je sais qu'il est simplement configuré pour me renvoyer ce dont j'ai besoin, si j'appelle cette URL?

28
ghostrider

Essayez d’inclure un schéma d’URL approprié dans votre URL, par exemple.

[NSURL URLWithString:@"http://www...

48
Vizllx

Dans mon cas, je l'ai corrigé avec ceci:

strURL = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

strURL contient la chaîne avec l'URL.

21
Alf G

Moi aussi, je me suis battu pour la même erreur, même si le chemin de l'URL était correct mais il y avait un espace dedans, avant http, comme ci-dessous:

NSString *path = @" http://www.mylink/";
NSURL *url = [NSURL URLWithString:path];

donc je recevais l'URL comme nulle et donc ça donnait "URL non supportée". puis en supprimant l'espace travaillé pour moi.

9
keshav

Dans mon cas, je visite un service fonctionnant sur mon propre Mac, mon URL est donc 127.0.0.1:8080/list

Après avoir ajouté un schéma http: //. Ça marche!

Maintenant, il s’agit de http://127.0.0.1:8080/list au lieu de 127.0.0.1:8080/list

7
KANGKANG

Dans mon cas, des espaces sont ajoutés à mon URL. J'ai enlevé des espaces et je cours. Assurez-vous de ne pas avoir ajouté d'espaces à votre URL, même lorsque vous transmettez des paramètres. J'espère que ça aide quelqu'un.

2

Il semble que ce soit une URL mal formée ou que ce ne soit pas une URL valide. Essayez de cliquer sur cette URL dans le navigateur. Je pense que vous n'obtiendrez aucun résultat. code d'erreur = -1002 se produit lorsque l'URL n'est pas prise en charge.

1
Sanchit Kumar Singh

même réponse que Alf G mais avec IOS 9+

strUrl = [strUrl stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLHostAllowedCharacterSet]
1
Aviv Frenkel

Dans mon cas, je passais une option non emballée dans Swift. Une fois que j'ai déballé la chaîne optionnelle to, l'URL a été acceptée correctement.

0
Justin Domnitz

Comme indiqué précédemment, un espace dans l'URL peut en être la cause, mais il est également possible que votre chaîne contienne un caractère non pris en charge. Par exemple, si vous copiez et collez une URL à partir d'un document PDF, Word ou d'un autre document, celle-ci peut contenir des caractères non pris en charge. Pour les yeux, ça a l'air bien mais pas le compilateur.

Pour résoudre ce problème, dans votre méthode [NSURL URLWithString:@"http://blabhblabh"], supprimez toute la ligne de code, pas seulement l'URL, et retapez le lien et la méthode à la main.

0
ClintChil