我创建了一个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)
我在这里找不到任何东西,或者可以检查一下这项工作吗?
答案 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
,你可能也有兴趣检查它。