在 Android 上使用 Restsharp 连接到本地主机

Connecting to localhost with Restsharp on Android

我创建了一个 Web API 并想在我的 Android XAMARIN 应用程序中访问它。这是一个 XAMARIN Forms 应用程序,它引用了安装了最新 RestSharp nuget 包的 .NET Standard 2.0 库。

不幸的是我得到了错误:

Error: ConnectFailure (No route to host)

每当我执行以下操作时:

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();
}

我的网站API控制器是这样设置的:

[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)

这里有什么我遗漏的或者可以查看以完成这项工作的吗?

由于您使用的是真实设备,因此您的 API url 不应是 localhost,而是您拥有 API 的计算机的 IP 地址运行.

localhost 只能在与 API.

同一台机器上的模拟器 运行 上运行

P.S.: 我写了一篇关于这个主题的blogpost,你可能也有兴趣查看它。