2017-07-05 7 views
-2

私はASP.Net WebフォームでREST APIを作成しました。私はAPIを使ってMySqlデータベースからデータを読み書きできます(私はChromeのREST Client拡張機能を使ってApiをテストしました)。今私は、私のクロスプラットフォームのxamarinフォームでRest Apiを消費しようとしています。アプリケーションにボタンを追加して、ボタンをクリックするとデータを取得できるかどうかを確認しました。私はvar Jsonにブレークポイントを挿入して、データを取得しているかどうかを確認しました。しかし、私はそれを取得することができません。私はlocalhostでWeb APIを実行しています。私はVS Androidのエミュレータでアプリを実行します。 REST Webサービスを適切に使用する方法を教えてください。ありがとうございました。XamarinフォームでASP Rest Web apiを使用するには?

Web APIを

namespace WorkAppApi.Controllers 
{ 
public class MachinesController : ApiController 
{ 
    // GET: api/Machines 
    public List<machines> Get() 
    { 
     DBConn db = new DBConn(); 
     return db.getMachineList(); 
    } 



    // GET: api/Machines/5 
    public machines Get(long id) 
    { 
     DBConn db = new DBConn(); 
     machines m = db.getMachine(id); 
     return m; 
    } 

    // POST: api/Machines 
    public HttpResponseMessage Post([FromBody]machines value) 
    { 
     DBConn db = new DBConn(); 
     long id; 

     id = db.addMachine(value); 
     HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created); 
     response.Headers.Location = new Uri(Request.RequestUri, String.Format("machines/{0}", id)); 
     return response; 
    } 

    // PUT: api/Machines/5 
    public void Put(int id, [FromBody]string value) 
    { 
    } 

    // DELETE: api/Machines/5 
    public void Delete(int id) 
    { 
    } 
} 
} 

ファンクションボタンを提出します。

namespace WorkApp 
{ 
[XamlCompilation(XamlCompilationOptions.Compile)] 
public partial class TestPage : ContentPage 
{ 
    private string Uri = "http://192.168.0.124:59547/api/Machines/"; 

    public TestPage() 
    { 
     InitializeComponent(); 
     check(); 
    } 


    private async Task submit(object sender, EventArgs e) 
    { 

     var httpClient = new HttpClient(); 
     var json = await httpClient.GetAsync(Uri); 

    } 



} 
} 
+0

この程度のSOでの回答のトンがあります。いくつか検索してください。 –

+0

私は検索を行った。私は作成したAPIを適切に消費する方法について簡単な例が必要です。 – jdk

+0

また、あなたの質問に答えても、あなたはそれらのいずれかを受け入れていません。あなたは人々が答えるのを続けると思いますか? –

答えて

1

これが私の答えのようになります。

namespace WorkApp 
{ 
    [XamlCompilation(XamlCompilationOptions.Compile)] 
    public partial class TestPage : ContentPage 
    { 
     private string Uri = "http://192.168.0.124:59547/api/"; 
     List<Machine> machines; 
     public TestPage() 
     { 
      InitializeComponent(); 
      check(); 
     } 


     private async Task submit(object sender, EventArgs e) 
     { 
      var httpClient = new HttpClient(); 
      httpClient.BaseAddress = Uri // I have changed the Uri variabele, you should extend this class and give it the same base address in the constructor. 
      var resp= await httpClient.GetAsync("Machines"); 
      if (resp.Result.IsSuccessStatusCode) 
      { 
       var repStr = resp.Result.Content.ReadAsStringAsync(); 
       machines= JsonConvert.DeserializeObject<List<Machine>>(repStr.Result.ToString()); 
      } 
     } 
    } 
} 
関連する問題