2013-07-11 87 views
0

當我級聯兩個字符串獲得一個網址,下面是串聯字符串的方法: 這樣做的目的是從一個URL即走:NSURL錯誤網址錯誤使用stringByAddingPercentEscapesUsingEncoding

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

到僅顯示所述網頁的一部分,並且是更短的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 ; 
    

    }

*請注意,該網站需要用戶登錄,這是做得比較早,一旦登錄成功,這些方法只被調用。

我送這個級聯的URL與一個GET的連接方法,我得到的錯誤如下:

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

的unconcatenated網址不存在這個問題,但。

的URL中的問題是:

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

的URL是正確的,並已經過測試。 (再次提醒,該網站要求你登錄)

我確實使用了:

stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding 

把它發送到連接之前,但我仍然得到同樣的錯誤。

我所有的其他鏈接工作,唯一不工作的鏈接是連接的鏈接。這些連接的字符串可以在普通的Web瀏覽器中工作。

任何想法可能是錯的?

+0

@阿里母雞可以粘貼您的級聯碼。 – icodebuster

+0

@icodebuster補充說。 –

+0

@ ali-hen您是否將字符串轉換爲NSURL格式? – icodebuster

回答

0

一種方式來實現這一則:

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];