【发布时间】:2017-10-31 06:59:32
【问题描述】:
我有这个 web api 服务:
[HttpPost]
public bool Post(UserModel newUser)
{
return regRepo.AddUser(newUser);
}
我想从 Xamarin.Forms 项目中调用它,所以我做了这个:
private void AddUser(object obj)
{
var user = obj as UserModel;
var url = @"http://localhost:57615/api/UsersApi/";
var uri = new Uri(url);
var client = new HttpClient();
var json = JsonConvert.SerializeObject(user);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = client.PostAsync(uri, content);
}
但它从不调用服务,我使用 Postman 来确保 URL 正确,并且可以正常工作
编辑
我按照 klm_ 的建议将方法签名更改为 async,但出现此错误:
应用程序处于中断模式
【问题讨论】:
-
在客户端如何以及在何处调用
AddUser? -
如果您在 android 中遇到此问题,请检查您是否已在 AndroidManifest 中授予 Internet 权限
-
我检查了互联网权限,但仍然无法正常工作。不过,同样的代码在控制台应用程序中工作!
-
如果使用这一行 var response = await client.PostAsync(uri, content) application break 那么你也可以尝试将 HttpClient Implementation 更改为 AndroidClientHandler。您可以从 android 项目属性中执行此操作。
-
不要使用本地主机,使用你服务器的IP
标签: c# rest xamarin.forms visual-studio-2017 dotnet-httpclient