【发布时间】: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();