首页 > 解决方案 > Xamarin IOS 应用程序连接到 IP 地址但不是域名

问题描述

我有一个简单的 Xamarin IOS 应用程序,它使用 System.Net 连接到一些 Rest 服务;下面的代码片段显示了我使用的一个简单的帖子。

client = new HttpClient();
 var authHeaderValue = Convert.ToBase64String(Encoding.UTF8.GetBytes(authData));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authHeaderValue);
var uri = new Uri(string.Format(stringUrl));
var content = new StringContent(payload, Encoding.UTF8, "application/x-www-form-urlencoded");


try
{
    response = await client.PostAsync(uri, content);
}

我遇到的问题是,如果 URL 包含服务器的 IP 地址,则应用程序成功连接到其余端点,但是如果我在 URL 上使用域名而不是 IP 地址,则 IOS 应用程序将无法连接并引发异常. 我知道端点已启动并正在运行,因为我可以从应用程序的 xamarin android 版本连接到相同的 URL 端点,但在 IOS 上它失败了。问题仅出在 URL 上使用域名时。希望有人以前见过这种奇怪的行为。还值得注意的是,在 IOS 模拟器上进行的相同测试可以正常工作,但在真正的 iphone 上却不行。谢谢

标签: c#xamarin.iossystem.net

解决方案


经过一些研究,我能够通过执行以下操作来解决这个问题:

使用(HttpClient客户端=新HttpClient()){

  response = await client.PostAsync(uri, content);

}


推荐阅读