1
8
首先,我想说,使用异常检查有效性是不好的,因为您可以使用 Uri.TryCreate 方法。因此,您可以重写代码,而不依赖于哪个异常可以被抛出和捕获。 所以最好把你的
到
但这并不是全部支票。 至于你的问题,答案相对简单。假设格式不正确是错误的:
乌里群岛 Uniform Resource Identifier 所以它 basic syntax
显然对您的输入有效。您将以资源的URI和“mailto:”方案结束。 当您尝试访问主机属性时,您假定资源是HTTP,但默认情况下使用的“mailto”方案分析器无法解析主机组件的原始字符串,因此引发异常。 因此,要正确编写支票,您必须稍微修改代码:
阅读一些关于 UriParser 此处更新基于@mark注释。
您不能通过方案检查,因为它将是“mailto”。所以这里是快速测试:
它以“错误的计划”结束。也许我不明白你的意思? 当您将href更改为:
它正确传递,自动将URI转义到:
此外,所有的URI组件都将对您可用。 我在第一部分试图解释的主要问题如下:
所以
它尝试验证传入的URI known schemes :
当方案未知时使用基本的URI解析器(请参见 URI scheme generic syntax )
基本地
例如: 它通过我的检查,变成: 您不需要检查它的格式是否正确。只需进行基本检查并尝试请求。希望它有帮助。
这个字符串是 畸形的 意思是不是 成形良好的 (因为包含排除字符 RFC 2396 )但它仍然可以被认为是 有效的 由于URI方案的通用语法是一致的(还要检查它在使用HTTP创建时是如何转义的:)。 |
2
1
如果你深入挖掘
|
3
1
根据尼克的回答:
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |