【问题标题】:How to specify new Uri instance with already escaped path segment?如何使用已经转义的路径段指定新的 Uri 实例?
【发布时间】:2019-08-29 09:11:59
【问题描述】:

我需要构造一个Uri 类的实例,其中一个路径部分必须在其中包含斜杠字符“/”。 例如,我需要将以下 URL 发送到 Web 服务器,其中不应将 DDDD/2019 解释为路径部分:

http://localhost/some/path/DDDD/2019

为了让服务器正确解释,我需要转义 DDDD/2019:

http://localhost/some/path/DDDD%2F2019

如果我将(转义)字符串提供给 Uri 类构造函数,它将另外转义 Uri。这意味着我的服务器将接收DDDD%2F2019 作为参数而不是DDDD/2019

我可以通过使用具有“dontEscape”参数的 Uri 构造函数来解决这个问题,我将这个参数设置为“true”。问题是 .NET (full 4.8 / core 2.2) 这个参数已经过时了,我不希望使用过时的方法。

有没有办法做到这一点?

【问题讨论】:

    标签: .net .net-core escaping uri


    【解决方案1】:

    其实一切都还好。 url 没有被编码两次。问题出在 .NET Core Kestrel 中,它没有正确解码参数:

    https://github.com/aspnet/Mvc/issues/4599

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-01
      • 1970-01-01
      • 2013-06-20
      相关资源
      最近更新 更多