c# - 将 IPv6 环回地址解析为 Uri

标签 c# sockets asp.net-web-api

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

服务器将客户端的 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/

相关文章:

c# - 将 MultipartFormDataContent 从 Controller Action 方法发布到 WebApi Post 方法

c# - 如何使用 .net webapi 保存对象

客户端无法绑定(bind)到给定端口并连接到给定服务器

.net - 安全套接字连接的最佳实践

c# - 如何使继承类的构造函数在类的构造函数之后运行

c# - 找出集合中的差异

c - 在 C 语言中使用 poll() 作为 TCP 服务器

c# - LINQ 查询无法评估 StartsWith 中的 GET 参数

c# - 如何更改 Sitecore 登录页面上的消息?

c# - 使用隧道而不是冒泡的 RoutedCommands