当 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"];