我连接两个字符串以获取URL,下面是连接字符串的方法: 这样做的目的是从URL:
https://vula.uct.ac.za/portal/pda/9f563cb2-24f9-481f-ab2e-631e85c9f3aa/tool-reset/10f71bdb-24b9-4060-bf6d-2c9654253aa3
指向仅显示部分网页的较短网址,并且为:
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 ;
}
*请注意,网站要求用户登录,这是先前完成的,只有登录成功后才会调用这些方法。
我使用GET将此连接的URL发送到连接方法,我收到以下错误:
Error Domain=NSURLErrorDomain Code=-1000 "bad URL" UserInfo=0x1d51f7d0 {NSUnderlyingError=0x1e547980 "bad URL", NSLocalizedDescription=bad URL}
但是,非连接的网址没有此问题。
相关网址为:
https://vula.uct.ac.za/portal/tool-reset/10f71bdb-24b9-4060-bf6d-2c9654253aa3
网址正确且已经过测试。 (再次注意,该网站要求您登录)
我确实使用过:
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding
在将其发送到连接之前,但我仍然得到相同的错误。
我的所有其他链接都有效,唯一不起作用的链接是连接的链接。这些连接的字符串可以在普通的Web浏览器中运行。
任何想法可能出错?
答案 0 :(得分: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];