当我必须从本地主机的 Web API 获取数据时,我遇到此错误,Android 应用程序正在模拟器中运行。
无法连接到 localhost/127.0.0.1:44326
xamarin 应用程序中的本地主机服务器没有收到任何响应,而我也可以在邮递员和浏览器中获取结果。我将 URL (“https://localhost:44326/api/passportStatus”) 放在 xamarin MainPage.xaml.cs 中。这些信息足以知道我实际上想要什么吗?
这是我的主页.xaml.cs
public partial class MainPage : ContentPage
{`public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
empDetails();
}
private async void empDetails()
{
var result = "";
HttpClient client = new HttpClient();
var API_URL = "https://localhost:44326/api/passportStatus";
client.BaseAddress = new Uri(API_URL);
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage respons = await client.GetAsync(API_URL);
result = await respons.Content.ReadAsStringAsync();
var PassportDetails = JsonConvert.DeserializeObject<List<detail>>(result);
EmpDeatils.ItemsSource = PassportDetails;
}
}
检查您是否已安装nuget包传送带,如果可以,请编辑API URL如下http://192.168.8.200:45455/在您的问题中添加44326 insted of 45455
更新您的代码,如下所示
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
empDetails();
}
private async void empDetails()
{
var result = "";
HttpClient client = new HttpClient();
var API_URL = "https://192.168.0.47:44326/api/";//Updated
client.BaseAddress = new Uri(API_URL);
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage respons = await client.GetAsync("passportStatus");//Updated
result = await respons.Content.ReadAsStringAsync();
var PassportDetails = JsonConvert.DeserializeObject<List<detail>>(result);
EmpDeatils.ItemsSource = PassportDetails;
}
}
希望这能解决您的问题
127.0.0.1是本地主机;它是每台本地机器的IP地址, 这意味着您尝试创建从 Android 应用程序到 Android 设备的请求
换句话说,您尝试连接 Android 设备,而不是计算机本地主机。
为此,您需要将计算机中的本地主机从 127.0.0.1 更改为计算机当前的 IP4。
现在尝试此扩展并按照说明在 Visual Studio 中执行此操作: https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti
在 Visual Studio 2022 17.7+ 版本上,有一个选项可以创建“开发隧道”,其功能与传送带/ngrok 的功能完全相同。