Как передать данные для авторизации и тело в Post запросе на C#

Всем привет. У меня есть код на Python, который отправляет Post запрос с телом и данными для авторизации на сайт, получает ответ и выводит его на консоль. Он работает, но я хочу разобраться как сделать тоже самое на C#. Просто отправить Post запрос с телом получилось, а вот как в него добавить учетные данные для входа не могу понять.

Код на Python, который работает:

import requests

authorization_data = {"Username": "User123", "Password": "qwerty123456"}
json_data = {"aggs": {"classAggregation": {"terms": {"field": "_type","size": 100}}},"query": {"match_all": {}},"size": 0}
url_address = "http://*************/****/******"
result = requests.post(url_address, json=json_data, auth=(authorization_data["Username"],authorization_data["Password"]))

print(result.text)

Код на C#, который не могу проверить, потому что не знаю как добавить авторизацию

using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;

namespace MetaSearch
{
    public class Program
    {
        public static void Main(string[] args)
        {
            WebRequest request = WebRequest.Create("http://*********/***/*******");
            request.Method = "POST";
            string postData = "{\"query\":{\"bool\":{\"must\":[{\"range\":{\"Id\":{\"gte\":111,\"lte\":111}}}],\"must_not\":[],\"should\":[]}},\"from\":0,\"size\":50,\"sort\":[],\"aggs\":{},\"version\":true}";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
        request.ContentType = "application/json";
        request.ContentLength = byteArray.Length;

        Stream dataStream = request.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();

        WebResponse response = request.GetResponse();
        Console.WriteLine(((HttpWebResponse)response).StatusDescription);

        using (dataStream = response.GetResponseStream())
        {
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            Console.WriteLine(responseFromServer);
        }

        response.Close();
    }
}

}

Заранее благодарю за помощь


Ответы (1 шт):

Автор решения: Vasilich

Получилось :) Добавил

var credentials = new NetworkCredential("username", "qwerty123456");

и

request.Credentials = credentials;

И все прошло успешно.

→ Ссылка