web-dev-qa-db-ja.com

NSURLRequestでサポートされていないURL

端末からこのリクエストを実行すると、通常どおりJSONリクエストが表示されます。

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

NSURlRequestの私のコードは次のとおりです。

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

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

そして、私はこのエラーを受け取っています:

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

そのURLを呼び出すにはどうすればよいですか?サーバーコードにアクセスできません-そのURLを呼び出すと、必要なものを返すようにセットアップされているだけです。

29
ghostrider

適切なURLスキームをURLに含めるようにしてください。

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

50
Vizllx

私の場合、これで修正しました:

strURL = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

strURLには、URLを含む文字列が含まれています。

22
Alf G

Urlパスは正しいが、httpの前に以下のようなスペースがあったにもかかわらず、私も同じエラーに苦労しました。

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

だから私はURLをnilとして取得していたので、「サポートされていないURL」を与えていました。それから私のために働いたスペースを取り除くことによって。

9
keshav

私の場合、自分のMacで実行されているサービスにアクセスするため、私のURLは127.0.0.1:8080/listです

Http://スキームを追加した後。できます!

127.0.0.1:8080/listではなく http://127.0.0.1:8080/list になりました

8
KANGKANG

私の場合、スペースがURLに追加されます。スペースを削除して実行しました。パラメータを渡す場合でも、URLにスペースを追加していないことを確認してください。それが誰かを助けることを願っています。

不正な形式のURLか、有効なURLではないようです。ブラウザでこのURLにアクセスしてみてください。結果は得られないと思います。 エラーコード= -1002は、URLがサポートされていない場合に発生します。

1

alf Gと同じ答えですが、IOS 9+

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

私の場合、Swiftでラップされていないオプションを渡していました。オプションの文字列をアンラップすると、URLは正しく受け入れられました。

0
Justin Domnitz

前述のように、URLにスペースがあるとこれが発生する可能性がありますが、文字列にサポートされていない文字が含まれている可能性もあります。たとえば、PDF、Wordまたはその他のドキュメントからURLをコピーして貼り付けると、サポートされていない文字が含まれる場合があります。目には見た目はいいが、コンパイラーには見えない。

これを修正するには、[NSURL URLWithString:@"http://blabhblabh"]メソッド、URLだけでなくコード行全体を削除し、リンクとメソッドを手動で再入力します。

0
ClintChil