端末からこのリクエストを実行すると、通常どおり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を呼び出すと、必要なものを返すようにセットアップされているだけです。
適切なURLスキームをURLに含めるようにしてください。
[NSURL URLWithString:@"http://www...
私の場合、これで修正しました:
strURL = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
strURLには、URLを含む文字列が含まれています。
Urlパスは正しいが、httpの前に以下のようなスペースがあったにもかかわらず、私も同じエラーに苦労しました。
NSString *path = @" http://www.mylink/";
NSURL *url = [NSURL URLWithString:path];
だから私はURLをnilとして取得していたので、「サポートされていないURL」を与えていました。それから私のために働いたスペースを取り除くことによって。
私の場合、自分のMacで実行されているサービスにアクセスするため、私のURLは127.0.0.1:8080/listです
Http://スキームを追加した後。できます!
127.0.0.1:8080/listではなく http://127.0.0.1:8080/list になりました
私の場合、スペースがURLに追加されます。スペースを削除して実行しました。パラメータを渡す場合でも、URLにスペースを追加していないことを確認してください。それが誰かを助けることを願っています。
不正な形式のURLか、有効なURLではないようです。ブラウザでこのURLにアクセスしてみてください。結果は得られないと思います。 エラーコード= -1002は、URLがサポートされていない場合に発生します。
alf Gと同じ答えですが、IOS 9+
strUrl = [strUrl stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLHostAllowedCharacterSet]
私の場合、Swiftでラップされていないオプションを渡していました。オプションの文字列をアンラップすると、URLは正しく受け入れられました。
前述のように、URLにスペースがあるとこれが発生する可能性がありますが、文字列にサポートされていない文字が含まれている可能性もあります。たとえば、PDF、Wordまたはその他のドキュメントからURLをコピーして貼り付けると、サポートされていない文字が含まれる場合があります。目には見た目はいいが、コンパイラーには見えない。
これを修正するには、[NSURL URLWithString:@"http://blabhblabh"]
メソッド、URLだけでなくコード行全体を削除し、リンクとメソッドを手動で再入力します。