【问题标题】:URI encodes control signs into absolute pathURI 将控制符号编码为绝对路径
【发布时间】:2020-07-23 12:12:51
【问题描述】:

我们正在向具有多个端点的 API 发送数据。为此,我们将基本 URL 放入一个变量中,并将路由信息附加到它。但是请求无法解析为服务,因为 URI 对象将不可打印的字符放入路径中。 创建URI对象的代码:

var uri = new Uri(_url + "/api/v1/create");

结果是:

https://localhost%E2%80%8B/api%E2%80%8B/v1%E2%80%8B/create

我们正在使用 .Net Framework 4.7.2。 有谁知道,发生了什么?

【问题讨论】:

  • 您是复制/粘贴 "/api/v1/create" 字符串到您的问题中,还是重新输入到您的问题中?
  • 我重新输入了它,但没有任何区别。我已经在代码文件中重新输入了 URL,甚至尝试了硬编码路径。
  • %E2%80%8Bzero-width space -- 我怀疑它存在于您的原始字符串中,并且不是由 Uri 引入的
  • 我们选择了核选项并重新输入了所有呼叫。我不知道符号是如何在重新输入后幸存下来的,但是你们帮我们解决了很多错误。
  • 你的版本控制系统的diff 功能应该能够告诉你哪一个发生了变化

标签: c# encoding uri


【解决方案1】:

正如 canton7 指出的那样,问题出在零长度空间here 我们重新输入了整个方法调用——不仅仅是 URL——现在系统正在运行。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-02
    • 2015-06-10
    • 2022-08-17
    • 2022-01-17
    • 2010-12-17
    • 2014-01-28
    • 1970-01-01
    • 2012-01-31
    相关资源
    最近更新 更多