我正在尝试实现一个使用RestKit的iOS应用程序。在我迄今为止看到的所有示例中,以下代码用于创建URL:
NSURL *baseURL = [NSURL URLWithString:@"https://api.service.com/v1"]; NSURL *relativeURL = [NSURL URLWithString:@"/files/search" relativeToURL:baseURL];
但随后[relativeURL absoluteString]
会回来https://api.service.com/files/search
。
所以我试了几个例子:
NSURL *baseURL1 = [NSURL URLWithString:@"https://api.service.com/v1/"]; NSURL *baseURL2 = [NSURL URLWithString:@"https://api.service.com/v1"]; NSURL *baseURL3 = [NSURL URLWithString:@"/v1" relativeToURL:[NSURL URLWithString:@"https://api.service.com"]]; NSURL *relativeURL1 = [NSURL URLWithString:@"/files/search" relativeToURL:baseURL1]; NSURL *relativeURL2 = [NSURL URLWithString:@"/files/search" relativeToURL:baseURL2]; NSURL *relativeURL3 = [NSURL URLWithString:@"/files/search" relativeToURL:baseURL3]; NSURL *relativeURL4 = [NSURL URLWithString:@"files/search" relativeToURL:baseURL1]; NSURL *relativeURL5 = [NSURL URLWithString:@"files/search" relativeToURL:baseURL2]; NSURL *relativeURL6 = [NSURL URLWithString:@"files/search" relativeToURL:baseURL3]; NSLog(@"1: %@", [relativeURL1 absoluteString]); NSLog(@"2: %@", [relativeURL2 absoluteString]); NSLog(@"3: %@", [relativeURL3 absoluteString]); NSLog(@"4: %@", [relativeURL4 absoluteString]); NSLog(@"5: %@", [relativeURL5 absoluteString]); NSLog(@"6: %@", [relativeURL6 absoluteString]);
这就是输出:
1: https://api.service.com/files/search 2: https://api.service.com/files/search 3: https://api.service.com/files/search 4: https://api.service.com/v1/files/search 5: https://api.service.com/files/search 6: https://api.service.com/files/search 在使用relativeURL的时候,baseURL建议以/结尾,而相对URL不建议以/开头