截至目前,我正在使用下面的代码下载文件以获取源代码:
NSString *stringUrl = @"http://example.com/hello/goodbye.html";
NSURL *finalURL = [NSURL URLWithString:[stringUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
self.source = [NSString stringWithContentsOfURL:finalURL encoding:NSUTF8StringEncoding error:nil];
不要误解我的意思,它的效果很好但是如果网址没有这样的扩展名则根本不起作用:
NSString *stringUrl = @"http://example2.com/something/";
NSURL *finalURL = [NSURL URLWithString:[stringUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
self.source = [NSString stringWithContentsOfURL:finalURL encoding:NSUTF8StringEncoding error:nil];
如何获取未定义扩展名的html源代码? 希望有人可以帮助我,因为我的整个项目依赖于从url获取源而没有扩展。感谢
答案 0 :(得分:4)
它应该像定义文件一样工作。 GET URL仅仅是对Web服务器的请求。允许服务器返回它想要的“文件”的任何内容。
换句话说:处理像这样的奇怪网址的复杂性不一定是你下载代码的一部分(只要你处理重定向请求)。这是服务器端的复杂性。
编辑:
如果您正在尝试获取页面的PHP源代码(或Web应用程序所使用的任何服务器端语言),那么您将无法运气。所有这些代码都在服务器端处理,根本不会发送到客户端。
EDIT2:
如果您尝试将http://example2.com/something/
转换为http://example2.com/something/whatever-file-the-webserver-used.XXX
,那么您也运气不好。没有人说网络服务器根本不得不把它交给文件 - 再次,URL只是变成了对服务器的GET请求。服务器可以自由地生成响应,但它甚至不需要查询特定的文件系统文件来生成结果(它可以由Web服务器本身完全在内存中生成,并且根本不会触及文件系统)。系统甚至不需要知道文件的概念,仍然可以很好地实现HTTP本身。