美文网首页
十八、URI格式异常

十八、URI格式异常

作者: 此间有道 | 来源:发表于2020-07-21 11:56 被阅读0次

    今天遇到一个URI报错,很明显错误信息不准确。

    一、URI异常

    示例代码

     public static void main(String[] args) throws URISyntaxException {
            new URI("http://test.jd.com /index.html");
     }
    

    报错信息

    Exception in thread "main" java.net.URISyntaxException: Illegal character in authority at index 7: http://test.jd.com /index.html
        at java.net.URI$Parser.fail(URI.java:2848)
        at java.net.URI$Parser.parseAuthority(URI.java:3186)
        at java.net.URI$Parser.parseHierarchical(URI.java:3097)
        at java.net.URI$Parser.parse(URI.java:3053)
        at java.net.URI.<init>(URI.java:588)
        at TmpTest.main(TmpTest.java:17)
    

    异常分析

    JAVA中根据格式解析认证模块时,如果出错,其报错非法字符的位置为认证模块的首位,而不是真正出错的位置。
    http://test.jd.com /index.html解析认证组件 test.jd.com时出错(多了一个空格),报错的非法字符位置为7,即http://后面的位置。

    二、URI格式介绍

    1. URI的通用格式定义:
      URI = scheme:[//authority]path[?query][#fragment]
      其中:authority = [userinfo@]host[:port]

      uri格式 from wiki
    2. URI中的authority组件:
      1)认证组件被互联网Server或特定协议的命名机关注册登记;
      2)认证组件跟在//后面;遇到符号?/结束。
      3)认证模块是非必须的;

    3. URI示例


      URI示例 from wiki

    参考

    1. https://tools.ietf.org/html/rfc2396#section-3.1
    2. https://en.wikipedia.org/wiki/Uniform_Resource_Identifier

    相关文章

      网友评论

          本文标题:十八、URI格式异常

          本文链接:https://www.haomeiwen.com/subject/lscikktx.html