我编写了一个客户端/服务器应用程序,正在我的本地机器上进行测试。
服务器将客户端的 IP 地址读取为 ::1
,这是一个 IPv6 环回地址。
但是,稍后我需要通过提供 Uri 的 BaseAddress 重新建立与此客户端的 HttpClient 连接:
var originalAddress = "::1";
var client = new HttpClient() { BaseAddress = new Uri(originalAddress) };
这会导致异常 Invalid URI: The format of the URI could not be determined.
如何让 Uri 接受这个地址?
最佳答案
如其他帖子所述,解决方案是根据 RFC 2732 将 IPv6 地址括在括号中:
var uri = new Uri("http://[::1]:8080");
关于c# - 将 IPv6 环回地址解析为 Uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32589143/