【发布时间】:2013-10-30 07:28:41
【问题描述】:
我有一个简单的 HttpClient,它在使用 ipv4/fqdb/host 名称时可以完美运行(请参阅下面的代码 sn-p)。但是,当我尝试使用 ipv6 地址连接到服务器时,相同的代码不起作用。我可能需要更改一些配置设置并能够使用 ipv6 地址定义 uri。
我查看了msdn,它有以下声明:
如果主机名是 IPv6 地址,则使用 规范 IPv6 地址。 ScopeId 和其他可选的 IPv6 数据被删除 - http://msdn.microsoft.com/en-us/library/system.uri.aspx
不知道是什么意思,会试着弄明白的。
我可以尝试解决什么问题?
看来我需要将 ipv6 地址保留在方括号中 [将其括起来 '[]'] http://[fe08::83e7:71e8:1364:0dff%19]:58703/ 现在看起来一切正常。感谢How to include ipv6 addresses with (or without) zone indexes in uri for .net remoting?
代码:
this.Client = new HttpClient();
**//below line throws UriFormatException (Invalid URI: Invalid port specified)**
this.Client.BaseAddress = new Uri(http://fe08::83e7:71e8:1364:0dff%19:58703/);
this.Client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/xml"));
//whereas below code works, when ipv4/fqdn is used...
this.Client = new HttpClient();
this.Client.BaseAddress = new Uri(10.0.0.1:58501);
this.Client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/xml"));
【问题讨论】:
标签: c# asp.net .net asp.net-mvc vb.net