System.Net.WebException:错误:以xamarin形式调用WEBAPI时出现NameResolutionFailure

时间:2017-10-03 02:09:44

标签: c# xamarin asp.net-web-api xamarin.forms

我使用PCL创建了一个简单的xamarin表单应用程序,它使用WEBAPI在listview中显示数据。当我打电话给WebAPI时,我遇到了错误。

  

ex = {System.Net.Http.HttpRequestException:发生错误   发送请求---> System.Net.WebException:错误:   System.Net.HttpWebRequest.EndGetResponse上的NameResolutionFailure   (System.IAsyncResult asyncResult)[0x00058] in   

我的WEBAPI: -

private const string WebServiceUrl = "http://msweb102/WEBAPI/api/employee/";

我在下面的代码中遇到错误,

var json = await httpClient.GetStringAsync(WebServiceUrl);

如果有人遇到同样的问题,请帮助我。在此先感谢。

我的RestClient代码: -

    public async Task<List<T>> GetAsync()
    {
        //var taskModels = new List<T>();
        var test = new List<T>();

        try
        {

            var httpClient = new HttpClient();

            var json = await httpClient.GetStringAsync(WebServiceUrl);

            var taskModels = JsonConvert.DeserializeObject<List<T>>(json);

            test = taskModels;
        }

        catch(Exception ex)
        {

        }

        return test;
    }

2 个答案:

答案 0 :(得分:1)

您的域名不正确。请提供完全量化的域名

编辑:假设您有一些将服务器IP地址映射到域(主机文件,私有DNS等)的配置,只需将msweb102替换为服务器的IP地址

例如 127.0.0.1/WEBAPI/api/employee/

答案 1 :(得分:0)

你在真实设备上的模拟器上有什么错误。

在这种情况下,您的测试环境似乎无法访问API环境

将MSWeb02更改为IP地址,并确保设置窗口防火墙以允许端口80上的出站连接。

测试它的简单方法是在设备的浏览器中打开web api。如果这样做,您的代码将起作用。