无法连接到 localhost/127.0.0.1:44326

问题描述 投票:0回答:4

当我必须从本地主机的 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;
        }
    }
sql-server asp.net-web-api xamarin.forms localhost
4个回答
2
投票

检查您是否已安装nuget包传送带,如果可以,请编辑API URL如下http://192.168.8.200:45455/在您的问题中添加44326 insted of 45455


1
投票

更新您的代码,如下所示

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

希望这能解决您的问题


1
投票

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


1
投票

在 Visual Studio 2022 17.7+ 版本上,有一个选项可以创建“开发隧道”,其功能与传送带/ngrok 的功能完全相同。

© www.soinside.com 2019 - 2024. All rights reserved.