当 URL 中存在 IP 地址时,NSURL 组件未授予权限 URL
NSURLComponent is not giving right URL when IP address exist in URL
我的 NSURLComponents 正在将“/”翻译成“%2F”。请查看 10.32.135.10 之后的日志。
NSURLComponents *urlComponent = [[NSURLComponents alloc] init];
[urlComponent setScheme:@"http"];
[urlComponent setHost:@"10.32.135.10/test.API"];
[urlComponent setPath:@"/api/path"];
urlComponent.queryItems = qItems;
在我执行时的日志中
po [urlComponent URL]
http://10.32.135.10%2Ftest.API/api/path?asetTypeId=1003
为什么反斜杠被翻译成 %2F。
请指导。
因为/test.API
应该在path
上。
让我们换个角度想一下:
NSString *urlStr = @"http://10.32.135.10/test.API/api/path?asetTypeId=1003";
NSURLComponents *components = [[NSURLComponents alloc] initWithString:urlStr];
NSLog(@"Host: %@", [components host]);
NSLog(@"Path: %@", [components path]);
NSLog(@"QueryItems: %@", [components queryItems]);
输出:
$>Host: 10.32.135.10
$>Path: /test.API/api/path
$>QueryItems: (
"<NSURLQueryItem 0x600000254760> {name = asetTypeId, value = 1003}"
)
修复:
[urlComponent setHost:@"10.32.135.10"];
[urlComponent setPath:@"/test.API/api/path"];
我的 NSURLComponents 正在将“/”翻译成“%2F”。请查看 10.32.135.10 之后的日志。
NSURLComponents *urlComponent = [[NSURLComponents alloc] init];
[urlComponent setScheme:@"http"];
[urlComponent setHost:@"10.32.135.10/test.API"];
[urlComponent setPath:@"/api/path"];
urlComponent.queryItems = qItems;
在我执行时的日志中
po [urlComponent URL]
http://10.32.135.10%2Ftest.API/api/path?asetTypeId=1003
为什么反斜杠被翻译成 %2F。 请指导。
因为/test.API
应该在path
上。
让我们换个角度想一下:
NSString *urlStr = @"http://10.32.135.10/test.API/api/path?asetTypeId=1003";
NSURLComponents *components = [[NSURLComponents alloc] initWithString:urlStr];
NSLog(@"Host: %@", [components host]);
NSLog(@"Path: %@", [components path]);
NSLog(@"QueryItems: %@", [components queryItems]);
输出:
$>Host: 10.32.135.10
$>Path: /test.API/api/path
$>QueryItems: (
"<NSURLQueryItem 0x600000254760> {name = asetTypeId, value = 1003}"
)
修复:
[urlComponent setHost:@"10.32.135.10"];
[urlComponent setPath:@"/test.API/api/path"];