POST-данные с использованием HttpClient - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь отправить данные в Интернет, используя HttpClient, но у меня ничего не получается.

Вот мой веб-интерфейс JSON

{
    "Categories":[
        {
            "CategoryID":1,
            "Category":"Category 1"
        },
        {
            "CategoryID":2,
            "Category":"Category 2"
        }
    ]
}

Я отправляю данные категорий вweb мой веб-разработчик отправьте мне выше json для отправки данных из winform в web

Вот мой код

IEnumerable<KeyValuePair<string, string>> paramt = new List<KeyValuePair<string, string>>()
                {
                    new KeyValuePair<string,string>("CategoryID","1"),
                    new KeyValuePair<string,string>("Category","Pizza")
                };
                HttpContent q = new FormUrlEncodedContent(paramt);
                using (HttpClient client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.BaseAddress = new Uri(url);
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", api);
                    HttpResponseMessage response = client.PostAsync("api/categories", q).Result;
 }

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

1 Ответ

0 голосов
/ 28 сентября 2018

Спасибо @ Джон с помощью твоего я сделал это

public class CategoryItem
        {
            public int CategoryID { get; set; }
            public string Category { get; set; }
        }

        public class CategoriesRoot
        {
            public IList<CategoryItem> Categories { get; set; }
        }

         var tmp = new CategoriesRoot
                {
                    Categories = new List<CategoryItem> {
                    new CategoryItem { CategoryID = 1, Category = "Pizza" }
                }
                };

                using (HttpClient client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.BaseAddress = new Uri(url);
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", api);
                    HttpResponseMessage response = client.PostAsJsonAsync("api/categories", tmp).Result;
                    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...