为什么我不能从Xamarin Frorms应用发布到.net核心Web API [英] Why can't I post from my Xamarin Frorms app to my .net core web api

查看:124
本文介绍了为什么我不能从Xamarin Frorms应用发布到.net核心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:

https://marketplace.visualstudio.com/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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆