• relativeURL 相对URL的坑


    我正在尝试实现一个使用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不建议以/开头
  • 相关阅读:
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
  • 原文地址:https://www.cnblogs.com/lidarui/p/7604323.html
Copyright © 2020-2023  润新知