Подключение к локальному хосту с Restsharp на Android - PullRequest
0 голосов
/ 05 мая 2018

Я создал веб-API и хотел бы получить к нему доступ в своем приложении Android XAMARIN. Это приложение XAMARIN Forms, которое ссылается на библиотеку .NET Standard 2.0 с установленным новейшим пакетом приложений NuS RestSharp.

К сожалению, я получаю ошибку:

Ошибка: 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);
        }
    }

Я нашел похожий вопрос, к сожалению, ответов пока не было. Ошибка: ConnectFailure (нет маршрута к хосту)

Есть что-нибудь, что я здесь упускаю или могу проверить, чтобы это сработало?

1 Ответ

0 голосов
/ 05 мая 2018

Поскольку вы используете реальное устройство, ваш URL-адрес API должен быть не localhost, а IP-адресом компьютера, на котором работает API.

localhost будет работать только на эмуляторе, работающем на той же машине с вашим API.

P.S .: Я написал blogpost на эту тему, вам может быть интересно проверить и его.

...