2016-06-16 13 views
2

私は簡単なWebApi Webサービスからデータを取得しようとしています。 AndroidのXamarinアプリケーションでは私は非常に簡単なコードを持っている:i'amはunhandlerエラーを受信するのでAndroid Xamarinを使用してWebApiからデータを取得する方法は?

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フォームアプリケーションでこのコードをテストしていましたが、すべてうまくいきました。 Xamarinアプリをテストするために、私は組み込みエミュレータを使用しています。テスト用に実際のデバイスを使用する必要がありますか?

+0

localhostを使用しているので、同じマシン上で使用する必要があります。実際のデバイス(私が好む)を使用する場合は、適切なホスト名またはIPを設定する必要があります。 – smoksnes

+0

私はそれを知っています。 Webサービス、androidエミュレータは同じマシン上で実行されています。 – Shagohad

答えて

1

ローカルホストがAndroidデバイスの127.0.0.1を指しているため、ウェブAPIを使用したり、IISサーバーを設定したり、Webアプリケーションをどこかに公開したりするには、役立つことを願っています。

+1

私はずっと前にその問題を修正しましたが、あなたの答えは正しいです、それは問題でした;) – Shagohad

+0

ありがとう@Shagohadあなたはいつでも歓迎します) –

+0

ありがとうございました。もう一つの便利な答え - > https://stackoverflow.com/questions/42365046/get-xamarin-android-device-calling-asp-net-web-api-running-localhost – Curiousity

関連する問題