【发布时间】:2020-02-19 14:08:34
【问题描述】:
[NSURL URLWithString:requestUrl relativeToURL:baseUrl]
如果 requestUrl 包含 '/User/page',则返回 nil。
如果你想要测试。
NSString *reqUrl1 = @"/api/v3.1/User/Page/";
NSString *reqUrl2 = @"api/v3.1/User/Page";
NSString *reqUrl3 = @"/api/v3.1/User/Page/";
NSString *reqUrl4 = @"/api/v3.1/Follow/Page";
NSString *reqUrl5 = @"/api/v3.1/User/Follow";
NSString *reqUrl6 = @"/api/v3.1/User/Pollow";
NSString *reqUrl7 = @"api/v3.2/User/Page";
NSString *reqUrl8 = @"api/v3.2/User/Page/aaa/bbb";
NSURL *url = [NSURL URLWithString:@"http://appgateway.xxx.xx-xxx.xxx.com/"];
NSString *lastUrl1 = [NSURL URLWithString:reqUrl1 relativeToURL:url].absoluteString;
NSString *lastUrl2 = [NSURL URLWithString:reqUrl2 relativeToURL:url].absoluteString;
NSString *lastUrl3 = [NSURL URLWithString:reqUrl3 relativeToURL:url].absoluteString;
NSString *lastUrl4 = [NSURL URLWithString:reqUrl4 relativeToURL:url].absoluteString;
NSString *lastUrl5 = [NSURL URLWithString:reqUrl5 relativeToURL:url].absoluteString;
NSString *lastUrl6 = [NSURL URLWithString:reqUrl6 relativeToURL:url].absoluteString;
NSString *lastUrl7 = [NSURL URLWithString:reqUrl7 relativeToURL:url].absoluteString;
NSString *lastUrl8 = [NSURL URLWithString:reqUrl8 relativeToURL:url].absoluteString;
NSLog(@"============");
// ------------------------------------------------------
(lldb) po lastUrl1
nil
(lldb) po lastUrl2
nil
(lldb) po lastUrl3
nil
(lldb) po lastUrl4
http://appgateway.xxx.xx-xxx.xxx.com/api/v3.1/Follow/Page
(lldb) po lastUrl5
http://appgateway.xxx.xx-xxx.xxx.com/api/v3.1/User/Follow
(lldb) po lastUrl6
http://appgateway.xxx.xx-xxx.xxx.com/api/v3.1/User/Pollow
(lldb) po lastUrl7
nil
(lldb) po lastUrl8
nil
【问题讨论】:
-
NSURL *hardCoded = [NSURL URLWithString:@"/api/v3.1/Follow/Page" relativeToURL:baseURL];有效。我对此进行了编码:pastebin.com/mx7J4njm,它更易于阅读/修改。问题出在其他地方:以“/”开头,以没有“/”结尾,这似乎不是“用户/页面”的情况......
标签: objective-c nsurl