Операции CRUD с ядром .net - PullRequest
       12

Операции CRUD с ядром .net

0 голосов
/ 27 сентября 2019

Я очень новичок в C #.Я пытаюсь разработать мультиплатформенное приложение, которое использует Web Api, загруженный на мой сервер.

Вот код для GET / POST:

public async void post_async(object sender, System.EventArgs e)
    {       

        Console.WriteLine("POST");


        try
        {
            HttpClient httpClient = new HttpClient();

            var uri = new Uri("https://mywebsite");

            var item = new users_model { username = "prove_username", email = "prove_mail", password = "prove_pwd", ranking = "prove_ranking"};


            var json = JsonConvert.SerializeObject(item, Formatting.Indented);
            var content = new StringContent(json, Encoding.UTF8, "application/json");
            var httpContent = new StringContent(json);

            var response = await httpClient.PostAsync(uri, httpContent);
            var message = await response.Content.ReadAsStringAsync();

            Console.WriteLine($"STATUS CODE POST:    " + response.StatusCode);
            Console.WriteLine($"REQUEST MESSAGE POST:    " + response.RequestMessage);
            Console.WriteLine($"CONTENT POST:    " + message);
            //Console.WriteLine($"DATA POST:    " + item.username);


        }
        catch (Exception er)
        {
            Console.WriteLine($"ERROR: " + er.ToString());

        }


    }

    async void get_async(object sender, System.EventArgs e)
    {

        try
        {
            HttpClient httpClient = new HttpClient();

            var uri = new Uri("https://mywebsite");
            var response = await httpClient.GetAsync(uri);
            var message = await response.Content.ReadAsStringAsync();

            Console.WriteLine($"STATUS CODE GET:    " + response.StatusCode);
            Console.WriteLine($"REQUEST MESSAGE GET:    " + response.RequestMessage);
            Console.WriteLine($"CONTENT GET:    " + message);


        }
        catch (Exception er)
        {
            Console.WriteLine($"ERROR: " + er.ToString());

        }

    }

Вот код контроллера:

public class users_model
{
    public string username { get; set; }
    public string email { get; set; }
    public string password { get; set; }
    public string ranking { get; set; }
}

Вот код Web Api:

    [HttpGet]
    public async Task<List<users_model>> getAllUsers ()
    {

        FirebaseClient firebase = new FirebaseClient("https://myFirebaseSite/");

        Items = new List<users_model>();
        Items = (await firebase.Child("users").OnceAsync<users_model>()).Select(item => new users_model

        {
            username = item.Object.username,
            email = item.Object.email,
            password = item.Object.password,
            ranking = item.Object.ranking

        }).ToList();

        return Items;
    }

   [HttpPost]
   public IActionResult addUser([FromBody] users_model new_user)
        {

            return Ok($"post ok. username: " + new_user.username);
        }

Если я вызываю get_async => нет проблем, если я вызываю post_async, я получаю "NotFound".Если я использую [ActionName ("void_name")] вместо [HttpPost] и [HttpGet], я получаю «UnsupportedMediaType»

Я даже пытался использовать NUGet «RestSharp», но у меня возникла та же проблема.Пожалуйста, помогите мне, это 3 дня, я не могу найти, как решить проблему :(

...