1. Сначала вам нужно разобраться какой тип авторизация используется: Basic Auth, Bearer Token, NTLM и т.д.
2. Начинать писать код:
using System.Net.Http;
Выполнение запроса без авторизации:
var client = new HttpClient();
client.DefaultRequestHeaders.Add("MyHeader", "MyHeaderValue");
var response = client.PostAsync("https://toster.ru", new StringContent("{\"Data\": \"Test\"}")).Result;
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
Basic авторизация:
var username = "username";
var password = "password";
var authValue = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{username}:{password}"));
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", authValue);
client.DefaultRequestHeaders.Add("MyHeader", "MyHeaderValue");
var response = client.PostAsync("https://toster.ru", new StringContent("{\"Data\": \"Test\"}")).Result;
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
Bearer token:
var token = "token"; // вам нужно где-то получить токен
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
client.DefaultRequestHeaders.Add("MyHeader", "MyHeaderValue");
var response = client.PostAsync("https://toster.ru", new StringContent("{\"Data\": \"Test\"}")).Result;
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
Если нужно для NTLM, могу скинуть пример, но навряд ли у вас этот случай.