为什么我不能从Xamarin Frorms应用发布到.net核心Web API [英] Why can't I post from my Xamarin Frorms app to my .net core web api
问题描述
我有一个post方法,可以将json发送到我的api.
I have a post method that sends json to my api.
我的端点在邮递员中工作,所以我的问题出在我的xamarin发布请求中:
My endpoint works in postman so my problem is in my xamarin post request:
async void RegisterUser(object sender, System.EventArgs e)
{
string URL = "http://blablahblah:51001/register";
HttpClient client = new HttpClient();
var model = new RegisterViewModel
{
Email = EntryEmail.Text,
FirstName = FirstName.Text,
LastName = LastName.Text,
Password = EntryPasswrd.Text
};
var content = JsonConvert.SerializeObject(model);
await client.PostAsync(URL, new StringContent(content));
}
在到达等待客户端之后.PostAsync(URL,new StringContent(content));行,应用程序只是停止死亡.没有错误消息或类似的东西.
after it hits the await client.PostAsync(URL, new StringContent(content)); line, the application just stops dead. no error messages or anything like that.
有什么想法吗?
我在API解决方案中的注册方法:
My register method in my API solution:
[Route("register")]
[HttpPost]
public async Task<ActionResult> InsertUser([FromBody] RegisterViewModel model)
{
var user = new IdentityUser
{
Email = model.Email,
UserName = model.Email,
SecurityStamp = Guid.NewGuid().ToString()
};
var result = await _userManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
var newUser = new User
{
Username = model.Email,
FirstName = model.FirstName,
LastName = model.LastName
};
_dbContext.Users.Add(newUser);
await _dbContext.SaveChangesAsync();
}
return Ok(new { Username = user.UserName });
}
我的视图模型正在通过以下方式传递数据:
and my view model i am passing the data through:
public class RegisterViewModel
{
[Required]
[EmailAddress]
public string Email { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Required]
public string Password { get; set; }
}
此后,我使用以下建议重写了post方法,但仍未在catch块内返回任何错误:
I have since rewrote my post method using the below suggestions, its still not returning any errors inside my catch block:
public async Task<string> Registered(object details)
{
string URL = "http://blahblah:51001/register";
HttpClient client = new HttpClient();
var model = new RegisterViewModel
{
Email = EntryEmail.Text,
FirstName = FirstName.Text,
LastName = LastName.Text,
Password = EntryPasswrd.Text
};
var content = JsonConvert.SerializeObject(model);
try
{
await client.PostAsync(URL, new StringContent(content));
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return "Registration Successful";
}
推荐答案
因此,在谷歌搜索2天后,我找到了解决方案:
So after 2 days of googling i found a solution:
现在我可以从我的xamarin表单项目发布到我的api了!
now I can post to my api from my xamarin forms project!!!
感谢大家的投入
这篇关于为什么我不能从Xamarin Frorms应用发布到.net核心Web API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!