zoukankan      html  css  js  c++  java
  • uri不能处理结尾为点的url的问题

    最近需要和某公司进行接口对接,发现用WebClient获取URL结尾带.的资源,会出404错误。但是用IE还有其它浏览器访问此资源,还能找到它。很神奇。

    于是,我百度了,找到的一堆都是说此url不规范。但是它不能解决我的问题。

    然后,我google之,在http://stackoverflow.com/上面,终于是找到了如此解析此问题的办法:

    Random seed = new Random();
    
    MethodInfo getSyntax = typeof(UriParser).GetMethod("GetSyntax", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
    FieldInfo flagsField = typeof(UriParser).GetField("m_Flags", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
    if (getSyntax != null && flagsField != null)
    {
        foreach (string scheme in new[] { "http", "https" })
        {
           UriParser parser = (UriParser)getSyntax.Invoke(null, new object[] { scheme });
           if (parser != null)
           {
                 int flagsValue = (int)flagsField.GetValue(parser);
                            // Clear the CanonicalizeAsFilePath attribute
                 if ((flagsValue & 0x1000000) != 0)
                    flagsField.SetValue(parser, flagsValue & ~0x1000000);
           }
        }
     }
    //使用 v
    ar url = new Uri((mdishInfopic ?? "").Trim() + "?newDate=" + seed.NextDouble());
  • 相关阅读:
    Confd+Consul 动态生成配置文件
    Flask实例化的参数 及 对app的配置
    Flask 中的路由系统
    Flask 中内置的 Session
    Flask中的模板语言jinja2
    docker
    windows上使用git
    redis的源码编译安装+发布订阅+RDB持久化
    mariadb安装和mysql主从同步
    nginx负载均衡
  • 原文地址:https://www.cnblogs.com/forhell/p/3308969.html
Copyright © 2011-2022 走看看