POST сервис в ядре .net - PullRequest
       1

POST сервис в ядре .net

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

Я пытаюсь написать очень простое мультиплатформенное приложение (iOS & Android) в visual studio.Это приложение использует веб-сервис, загруженный на мой веб-хостинг.

Это код, который вызывает Web Api (get & post):

    async void post_async(object sender, System.EventArgs e)
    {
        Console.WriteLine("POST");

        try
        {
            HttpClient httpClient = new HttpClient();

            var BaseAddress = "https://mywebsite";

            var response = await httpClient.PostAsync(BaseAddress, null);
            var message = await response.Content.ReadAsStringAsync();

            Console.WriteLine($"RESPONSE:    " + message);


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

        }

    }

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

        try
        {
            HttpClient httpClient = new HttpClient();

            var BaseAddress = "https://mywebsite";
            var response = await httpClient.GetAsync(BaseAddress);

            if (response.IsSuccessStatusCode)
            {
                var content = await response.Content.ReadAsStringAsync();
                Console.WriteLine($"RESPONSE: " + content);
            }



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

        }

    }

Это очень простой код для Web Api:

        [HttpGet]
        public ActionResult<string> Get()
        {
            return "get method ok";
        }


        [HttpPost]
        public ActionResult<string> Post()
        {
            return "post method ok";
        }

Очень странная проблема, потому что для каждой пустоты я всегда получаю "get method ok".Так что «get» - это нормально, но я не понимаю, почему я не могу вызвать метод post.Я пытался использовать Почтальон: та же проблема.

Любые идеи?

Спасибо

РЕДАКТИРОВАТЬ:

Я использую этот очень простой код:

[ActionName("getmet")]
    public ActionResult<string> getmet()
    {
        return "get method ok";
    }

    [ActionName("postmet")]
    public ActionResult<string> postmet()
    {
        return "post method ok";
    }

Теперь, конечно, я могу позвонить https://mywebsite/getmet или почтой, и это работает с помощью почтальона.У меня сейчас вопрос: если я использую [HttpPost] для метода postmet, на Postman я получаю «404 not found».Почему?

1 Ответ

0 голосов
/ 22 сентября 2019
var BaseAddress = "https://mywebsite"; // 

URL-адреса получают метод по методу difualt, это означает, что он работает как https://mywebsite/Get, где в качестве фактического URL-адреса метода записи используется https://mywebsite/Post

вместо вызовадругой метод использовать код, как показано ниже.

[HttpPost]
[HttpGet]
public ActionResult<string> Get()
{
    return "method ok";
}

ИЛИ вы можете использовать МАРШРУТ API

ИЛИ

[AcceptVerbs(HttpVerbs.Get|HttpVerbs.Post)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...