it-swarm.com.de

Nicht unterstützte URL in NSURLRequest

Wenn ich diese Anforderung von meinem Terminal aus ausführen kann, werden die JSON-Anforderungen wie üblich angezeigt:

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

Mein Code für die NSURlRequest lautet:

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

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

Und ich bekomme diesen Fehler:

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"}

Wie kann ich diese URL aufrufen? Ich kann nicht auf den Servercode zugreifen. Ich weiß, es ist nur so eingerichtet, dass es mir zurückgibt, was ich brauche, wenn ich diese URL anrufe.

28
ghostrider

Versuchen Sie, ein geeignetes URL-Schema in Ihre URL aufzunehmen, z.

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

48
Vizllx

In meinem Fall habe ich es damit behoben:

strURL = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

strURL enthält die Zeichenfolge mit der URL.

21
Alf G

Ich habe auch um den gleichen Fehler gekämpft, auch wenn der URL-Pfad korrekt war, aber es war ein Leerzeichen vor http (siehe unten):

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

also bekam ich URL als Null und es gab "nicht unterstützte URL". dann durch das Entfernen des Raumes für mich gearbeitet.

9
keshav

In meinem Fall besuche ich einen Dienst, der auf meinem eigenen Mac ausgeführt wird. Daher lautet meine URL 127.0.0.1:8080/list

Nachdem ich ein http: // Schema hinzugefügt habe. Es klappt!

Jetzt ist es http://127.0.0.1:8080/list anstelle von 127.0.0.1:8080/list

7
KANGKANG

In meinem Fall werden Leerzeichen zu meiner URL hinzugefügt. Ich habe Leerzeichen entfernt und renne. Bitte stellen Sie sicher, dass Sie Ihrer URL keine Leerzeichen hinzugefügt haben, auch wenn Sie Parameter übergeben. Hoffe es hilft jemandem.

Es scheint, dass es sich um eine fehlerhafte URL handelt oder es ist keine gültige URL. Versuchen Sie, diese URL im Browser zu treffen. Ich denke, Sie werden kein Ergebnis erhalten. Fehlercode = -1002 tritt auf, wenn die URL nicht unterstützt wird.

1

gleiche Antwort wie Alf G, aber mit IOS 9+

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

In meinem Fall habe ich in Swift ein ausgepacktes Wahlfach übergeben. Nachdem ich den optionalen String auspackt hatte, wurde die URL korrekt akzeptiert.

0
Justin Domnitz

Wie bereits erwähnt, kann dies durch ein Leerzeichen in der URL verursacht werden. Es ist jedoch auch möglich, dass Ihre Zeichenfolge ein nicht unterstütztes Zeichen enthält. Wenn Sie beispielsweise eine URL aus einem PDF-, Word- oder anderen Dokument kopieren und einfügen, enthält sie möglicherweise nicht unterstützte Zeichen. Für das Auge sieht es gut aus, aber nicht der Compiler.

Um dies zu beheben, löschen Sie in Ihrer [NSURL URLWithString:@"http://blabhblabh"]-Methode die gesamte Codezeile, nicht nur die URL, und geben Sie den Link und die Methode erneut von Hand ein.

0
ClintChil