c # создание веб-запроса HTTP POST - PullRequest
0 голосов
/ 13 марта 2019

привет, ребята, у меня есть сваггер URL http://somehost/swagger/index.html методы конца там, как показано на рисунке: enter image description here

Я пытаюсь создать веб-запрос HTTP POST, обратитесь к одному из методов post.

using System;
using System.Collections.Generic;
using System.Net.Http;
namespace SwaggerConsoleAPP
{
    class Program
    {  
        static  void Main(string[] args)
        {
            postRequest("http://somehost/api/Referral/GetReferralsByPersonalIdNumber");
                Console.ReadKey();
        }

        async  static void postRequest (string url){
            IEnumerable<KeyValuePair<string, string>> queries = new List<KeyValuePair<string, string>>() {
                new KeyValuePair<string, string>("1133221221","5642")

            };
            HttpContent q = new FormUrlEncodedContent(queries);
            using (HttpClient client = new HttpClient())
            {
                using (HttpResponseMessage responce = await client.PostAsync(url,q))
                 {
                    using (HttpContent content = responce.Content)
                    {
                        string mycontent = await content.ReadAsStringAsync();

                        Console.WriteLine(mycontent);
                    }
                 }
            }
        }
}
    }

это консольное приложение, но консоль пишет ошибку:

{"": ["Ввод неверный."]}

Это модель метода enter image description here

Любая помощь?

1 Ответ

0 голосов
/ 13 марта 2019

По моему мнению, пара ключ-значение является причиной проблемы.

API ожидает personalIDNumber и pharmacyID как два отдельных параметра.

Самое простое решение - просто создать класс с этими двумя свойствами:

public class InputFields
{
    public string personalIDNumber{get;set;}
    public string pharmacyId{get;set;}
}

Это будет работать до тех пор, пока ваш API имеет режим этого типа в качестве входного параметра.

Обратите внимание, что при отправке двух параметров в теле HTTP в виде сообщения может потребоваться дополнительно кодировать , как указано здесь.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...