我需要获取字符串 url 的主机名
我正在尝试从字符串创建 NSURL 对象,然后使用 NSURL 的主机属性来获取主机名。但主机名始终为空。
NSURL *url = [NSURL URLWithString: @"www.google.com"];
NSLog(@"Host name %@", url.host);
但主机名始终为空。谁能解释为什么主机名为空?
编辑:很抱歉有一个错字,我在提问时错过了引号和逗号。但问题还是一样。
我需要获取字符串 url 的主机名
我正在尝试从字符串创建 NSURL 对象,然后使用 NSURL 的主机属性来获取主机名。但主机名始终为空。
NSURL *url = [NSURL URLWithString: @"www.google.com"];
NSLog(@"Host name %@", url.host);
但主机名始终为空。谁能解释为什么主机名为空?
编辑:很抱歉有一个错字,我在提问时错过了引号和逗号。但问题还是一样。
根据Apple 文档,
- (NSString *)host;
返回值:
URL 的主机。如果接收者不符合
RFC 1808
,则返回 nil
因此,如果它不符合RFC 1808
,它将返回 nil。根据 的定义RFC 1808
,
正确的语法如下:
<scheme>://<net_loc>/<path>;<params>?<query>#<fragment>
所以你需要http://
在形成的同时添加NSURL
。
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSLog(@"Host name %@", url.host);
看起来您在 www.google.com 之后缺少一个“?请尝试添加它。
NSURL *url = [NSURL URLWithString: @"www.google.com"];
NSLog(@"Host name %@", url.host); ^
^
(注意第二行我还加了一个逗号,我尽量用 ^ 指向它)
编辑:啊,好吧,那么它可能是第二行的逗号。
如果你这样做会更好(添加 http://):
NSURL *url = [NSURL URLWithString: @"http://www.google.com"];
NSLog(@"Host name %@", url.host);