NSURLRequest和请求的页面

时间:2009-02-13 11:32:45

标签: cocoa-touch

我在shouldStartLoadWithRequest委托中的UIWebView中捕获链接点击信息。我正在使用mainDocumentURL来获取链接点击的网址。这显示了完整的URL,但我只需要页面的名称,即.html,.htm等请求。我看不到任何可以归还这个的财产。我是否需要解析并提取我自己或者是否有人知道NSURLRequest中是否存在将返回此属性的属性或方法。

非常感谢你的帮助。 贝

3 个答案:

答案 0 :(得分:2)

如果我正确理解你,你想转换为NSString,然后使用它的方法。从你的NSURLRequest开始,你会做这样的事情(注意,我把它输入网页并且没有编译它):

NSURL *url = [request URL];
NSString *filename = [[url path] lastPathComponent];

如果您的网址类似http://www.foo.com/bar/baz.html,则会显示“baz.html”。

答案 1 :(得分:1)

我认为你的意思是URL的路径。下面的代码提取一个字符串s,其值为@“/ cheese.html”。

NSURL* u = [NSURL URLWithString:@"http://www.wibble.com/cheese.html"];
NSString* s = [u path];

查看RFC 1808的文档,该文档告诉您如何组成URL,然后阅读Apple的NSURL文档,该文档告诉您如何提取URL的这些部分。

答案 2 :(得分:0)

NSURL可以提取大部分网址元素。我怀疑你的意思是可以通过路径消息访问的路径。

如果你真的想从路径扩展我建议你使用路径然后检查返回的NSString,或者通过发送absoluteString消息将整个URL转换为字符串。从NSString修剪扩展可以通过多种方式执行。