我有一个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 = "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 = "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:
marketplace.visualstudio/items ?itemName = vs-publisher-1448185.ConveyorbyKeyoti#overview
现在我可以从我的xamarin表单项目发布到我的api了!
now I can post to my api from my xamarin forms project!!!
感谢大家的投入
更多推荐
为什么我不能从Xamarin Frorms应用发布到.net核心Web API
发布评论