0

URL を取得するために 2 つの文字列を連結しました。以下は、文字列を連結する方法です。この目的は、URL から移動することです。

  • https://vula.uct.ac.za/portal/pda/9f563cb2-24f9-481f-ab2e-631e85c9f3aa/tool-reset/10f71bdb-24b9-4060-bf6d-2c9654253aa3

Web ページの一部のみを表示する短い URL に変更します。

  • https://vula.uct.ac.za/portal/tool-reset/10f71bdb-24b9-4060-bf6d-2c9654253aa3

    -(NSString *)cropURL:(NSString *)inputURL{
    NSString *outputURL ;
    NSRange match;
    match = [inputURL rangeOfString: @"tool-reset"]; //Gives the index and range of the string "tool-reset"
    int toolLen = match.location+match.length ; //Gives the index after "tool-reset"
    NSString*tempIdentifier = [inputURL substringFromIndex:toolLen] ; //Gets the characters after "tool-reset"
    NSString *firstURL = @"https://vula.uct.ac.za/portal/tool-reset" ; //First part of URL
    NSMutableArray *concatURL = [[NSMutableArray alloc] initWithCapacity:2] ; // Array to concat firstURL and tempIdentifier
    [concatURL addObject:(NSString *)firstURL] ;
    [concatURL addObject:(NSString *) tempIdentifier] ;
    outputURL = [concatURL componentsJoinedByString:@""] ; //Concatenatd to outputURL
    outputURL = [outputURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ; //Encoding
    return outputURL ;
    

    }

*Web サイトではユーザーがログインする必要があることに注意してください。これは以前に行われ、これらのメソッドはログインが成功した場合にのみ呼び出されます。

この連結された URL を GET を使用して接続メソッドに送信したところ、以下のエラーが発生しました。

Error Domain=NSURLErrorDomain Code=-1000 "bad URL" UserInfo=0x1d51f7d0 {NSUnderlyingError=0x1e547980 "bad URL", NSLocalizedDescription=bad URL}

ただし、連結されていない URL にはこの問題はありません。

問題の URL は次のとおりです。

https://vula.uct.ac.za/portal/tool-reset/10f71bdb-24b9-4060-bf6d-2c9654253aa3

URL は正しく、テスト済みです。(繰り返しますが、このサイトではログインが必要です)

私は使用しました:

stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding

接続に送信する前に、それでも同じエラーが発生します。

私の他のすべてのリンクは機能しますが、機能しないリンクは連結されたものだけです。これらの連結された文字列は、通常の Web ブラウザーで機能します。

何が間違っている可能性がありますか?

4

1 に答える 1

0

これを達成する1つの方法:

NSURL *input = [NSURL URLWithString:@"https://vula.uct.ac.za/portal/pda/9f563cb2-24f9-481f-ab2e-631e85c9f3aa/tool-reset/10f71bdb-24b9-4060-bf6d-2c9654253aa3"];

NSString *identifier = input.lastPathComponent;

NSURL *base = [NSURL URLWithString:@"https://vula.uct.ac.za/portal/tool-reset/"];

NSURL *output = [base URLByAppendingPathComponent:identifier];
于 2013-07-16T08:06:11.127 に答える