在 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,你可能也有兴趣查看它。
我创建了一个 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,你可能也有兴趣查看它。