将 IPv6 环回地址解析为 Uri

Dan*_*aar 3 c# sockets asp.net-web-api

我编写了一个客户端/服务器应用程序,我正在我的本地机器上测试它。

服务器读取客户端的 IP 地址作为::1IPv6 环回地址。

但是,稍后我需要通过提供 Uri 的 BaseAddress 重新建立与该客户端的 HttpClient 连接:

  var originalAddress = "::1";
  var client = new HttpClient() { BaseAddress = new Uri(originalAddress) };
Run Code Online (Sandbox Code Playgroud)

这导致异常 Invalid URI: The format of the URI could not be determined.

我怎样才能让 Uri 接受这个地址?

Dan*_*aar 5

正如其他帖子中提到的,解决方案是根据RFC 2732在 IPv6 地址周围用括号括起来:

var uri = new Uri("http://[::1]:8080");
Run Code Online (Sandbox Code Playgroud)