当我必须从localhost的Web API中获取数据时,我遇到了这个错误,Android应用程序正在模拟器中运行。
无法连接到localhost / 127.0.0.1:44326
xamarin应用程序中的localhost服务器没有响应,而我可以在邮递员和浏览器中获取结果。我在xamarin MainPage.xaml.cs中放入了URL(“ https://localhost:44326/api/passportStatus”。这些信息足以知道我到底想要什么吗?
这是我的mainpage.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;
}
}
答案 0 :(得分:2)
检查是否已安装nuget包装输送机,如果可以,请在您的问题中添加API网址为45455的http://192.168.8.200:45455/编辑API URL
答案 1 :(得分: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;
}
}
希望这可以解决您的问题
答案 2 :(得分:0)
127.0.0.1 是本地主机;这是每台本地计算机的IP地址, 这意味着您尝试创建从Android应用到Android设备的请求
换句话说,您尝试连接Android设备,而不是计算机Localhost。
为此,您需要将计算机中的本地主机从 127.0.0.1 更改为计算机的当前 IP4 。
现在尝试此扩展并按照说明在Visual Studio中执行此操作: https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti