2

我试图使用REST服务连接Xamarin.Forms便携式应用程序。我正在使用Visual Studio 2015企业版。如何在Xamarin.forms中调用REST Api Visual Studio 2015中的便携式应用程序

Rest服务在本地发布,可以通过网址正常运行。
当我试图在应用程序中调用我的Rest服务。这是抛出一个例外:

{System.Threading.Tasks.TaskCanceledException}与“发生一个或多个错误”。在ServiceWrapper.cs

C#代码:

public async Task<string> GetData() 
     { 
      try 
      { 
       var client = new HttpClient(new NativeMessageHandler()); 
       client.BaseAddress = new Uri("http://ipaddress/"); 
       client.DefaultRequestHeaders.Accept.Add(
       new MediaTypeWithQualityHeaderValue("application/json")); 
       var response = client.GetAsync("IRESTApi.svc/xml/12").Result; 
       string content = await response.Content.ReadAsStringAsync(); 
       return content; 
       //using (var client = new HttpClient()) 
       //{ 
       // var result = await client.GetAsync("http://ipaddress/IRESTApi.svc/xml/12"); 
       // return await result.Content.ReadAsStringAsync(); 
       //} 
      } 

      catch (Exception ex) 
      { 
       var t = ex.Message; 
       return t; 
      } 
     } 

我试图上述方法利用机器人设备this参考。请帮忙。

+0

可以检查内部异常?它说有多个错误,应该有一些细节:)另外,Android,iOS上的这个错误? –

+0

作为一个方面说明,你应该用'await client.GetAsync(“IRESTApi.svc/xml/12”)'替换'client.GetAsync(“IRESTApi.svc/xml/12”)。尽可能使用'await',我找不到任何理由不要在你的上下文中使用它。 – user3185569

+0

@GeraldVersluis我已经提到它的Android设备。而innerexception是“{System.Threading.Tasks.TaskCanceledException}”。 – Priya

回答

0

试试这个:d

public interface IGetData 
    { 
     Task<string> GetApiData(); 
    } 

    public class GetData : IGetData 
    { 

    public async Task<string> GetApiData() 
    { 
     var client = new HttpClient(); 
     var response = await client.GetAsync(string.Format("http://mysite/api/Data")); 
     var responseString = await response.Content.ReadAsStringAsync(); 
     return responseString; 
    } 

    } 
+0

我已经在我的问题中试过这段代码,它显示'frame not in module'错误。 – Priya