【发布时间】:2015-01-26 22:27:30
【问题描述】:
我有以下 URL 字符串日志。日志包含数百万条记录。
www.example.com/p1?q=k
example.com/p1?q=k
http://example.com/p1?q=k
https://example.com/p1?q=k
http://www.example.com/p1?q=k
我使用了 C# Uri 类,但它对“example.com/p1?q=K”类型的格式抛出异常 我想知道是否有一种普遍/标准接受的方法来处理这些不同类型的 URL 以获取网站名称和相对 URL。
P.S:我可以通过使用正则表达式或字符串比较来去除 http:// 和 https://,但很想知道是否有任何优雅的解决方案
【问题讨论】:
-
if there is a generally/standard accepted method是的Uri:) -
是的,但它会引发类型为“example.com/p1?q=k”的日志的异常
-
附加 http://、https:// 或 www。如果它不存在,以防它在 Uri 实例的构造过程中发生
-
你拥有的不是有效的 uri,如果你想做你正在做的事情,你需要在
uri中有http://www.然后你可以替换删除www的代码将它存储为变量然后附加它我将粘贴一些代码供您开始使用.. -
@MethodMan 根据相应的 RFC Uri 不必一直都是绝对的...... OP 展示了几个相对 uri 的样本(即没有模式部分),这些样本完全被 .Net
Uri明确指定“相对”作为类型时的类......不知道为什么你认为它们是“无效的”。