使用Android上的Restsharp连接到localhost

时间:2018-05-05 13:53:06

标签: asp.net-web-api xamarin.forms restsharp

我创建了一个Web API,并希望在我的Android XAMARIN App中访问它。它是一个XAMARIN Forms App,引用了安装了最新RestSharp nuget软件包的.NET Standard 2.0库。

不幸的是我收到错误:

  

错误:ConnectFailure(无主机路由)

每当我执行以下操作时:

public async Task<List<ETFPortfolio>> GetPortfolios()
{
    var client = new RestClient("http://10.0.2.2:51262/api/");
    var request = new RestRequest("portfolio", Method.GET);
    request.AddHeader("Accept", "application/json");
    var response = client.Execute(request); // Result with the error stated above

    throw new Exception();
}

我的WebAPI控制器设置如下:

[Route("api/[controller]")]
public class PortfolioController : Controller
{
    // GET api/portfolio
    [HttpGet]
    public async Task<IActionResult> Get()
    {
        try
        {
            var handler = new MyHandler();
            var portfolioList = await handler.Handle();
            return Ok(portfolioList);
        }
        catch (Exception ex)
        {
            return BadRequest(ex.Message);
        }
    }

我发现了一个类似的问题,遗憾的是还没有答案。 Error: ConnectFailure (No route to host)

我在这里找不到任何东西,或者可以检查一下这项工作吗?

1 个答案:

答案 0 :(得分:0)

由于您使用的是真实设备,因此您的API网址不应该是public class ApplicationRoleManager : RoleManager<IdentityRole> { public ApplicationRoleManager(IRoleStore<IdentityRole, string> roleStore) : base(roleStore) { } public static ApplicationRoleManager Create( IdentityFactoryOptions<ApplicationRoleManager> options, IOwinContext context) { var manager = new ApplicationRoleManager( new RoleStore<IdentityRole>(context.Get<ApplicationDbContext>())); return manager; } } ,而是运行API的计算机的IP地址。

localhost仅适用于使用API​​运行在同一台计算机上的模拟器。

P.S。:我在这个主题上写了set_target_properties,你可能也有兴趣检查它。