如何使用Android Xamarin从WebApi获取数据?

时间:2016-06-16 06:46:53

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

我正在尝试从简单的WebApi Web服务获取数据。在Android Xamarin应用程序中,我有非常简单的代码:

public class Persons
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
}

class WebRequests
{
    public static List<Persons> getPersons()
    {
        List<Persons> lp = new List<Persons>();
        HttpClient client = new HttpClient();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        try
        {
            HttpResponseMessage response = client.GetAsync("http://localhost:49814/api/Data/Persons").Result;
            if (response.IsSuccessStatusCode)
            {
                lp = JsonConvert.DeserializeObject<Persons[]>(response.Content.ReadAsStringAsync().Result).ToList();
            }
        }
        catch
        {

        }

        return lp;
    }
}

问题在于行

HttpResponseMessage response = client.GetAsync("http://localhost:49814/api/Data/Persons").Result;

因为我收到了不正确的错误。我不知道什么是错的,因为没有任何错误消息我抓住了声明。我在一个简单的Win Forms应用程序中测试此代码,一切都很好。使用内置模拟器测试Xamarin应用程序。我应该使用真正的设备进行测试吗?

1 个答案:

答案 0 :(得分:1)

不要使用localhost,因为localhost指向您的Android设备的127.0.0.1,如果您想使用您的web api,设置IIS服务器或在某处发布您的Web应用程序,我希望它会对您有所帮助。