【问题标题】:How to replace hostname in url in c#?如何在c#中替换url中的主机名?
【发布时间】:2019-02-04 22:41:35
【问题描述】:

我有这个功能

    public static string ReplaceHost(string original, string newHostName) {
        UriBuilder builder = new UriBuilder(original);
        builder.Host = newHostName;
        return builder.Uri.ToString();
    }

但是输入是这样的

original - https://test.com/a/b/c
newHostName - https://test2.com

但是这会导致无效的 uri 异常。我认为这是因为 newHostName 不应该有 https:// 部分。如何编辑此代码以使其适用于我的输入?

谢谢

【问题讨论】:

  • 你是对的,主机名不包括方案。从您的 newHostName 创建一个 Uri 对象(不要称它为 newHostName,因为它实际上不是主机名而是一个 url;而是将其称为 newHostUrl 之类的东西),然后从该 Uri 对象中获取主机名部分...跨度>
  • return new UriBuilder(original) {Host = new Uri(newHostName).Host}.ToString();

标签: c# url


【解决方案1】:

Uri.Host

包含主机名的字符串。这通常是服务器的 DNS 主机名或 IP 地址。

你只需要.HostnewHostName的一部分:

public static string ReplaceHost(string original, string newHostName)
{
    UriBuilder builder = new UriBuilder(original);
    builder.Host = new Uri(newHostName).Host;
    return builder.ToString();
}

【讨论】:

    猜你喜欢
    • 2020-11-21
    • 2017-07-25
    • 2021-10-23
    • 2012-04-04
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    相关资源
    最近更新 更多