POST запрос на авторизацию в C#
Может ли кто-нибудь дать пример работы с POST-авторизацией в C#? Задача такая. Есть API-сервер. На нем нужно авторизоваться через POST, а в ответ получить токен для дальнейшего взаимодействия с этим сервером. Загвоздка в том, что я нашел не мало примеров, но сервер все равно выдает ошибку авторизации. Владелец сервера прислал только такой пример:
curl -d '{"user": "<user>", "password": "<password>"}' 'https://server.com/authorize/token?expire_hours=2'
Мой код:
static string GetRequest(string url, bool isPOST)
{
Stream response = null;
StreamReader reader = null;
string result = null;
try
{
var request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = 60000;
if (isPOST)
{
url += "?expire_hours=24";
string data = $"user:{User}&password:{Password}";
byte[] byteData = Encoding.UTF8.GetBytes(data);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteData.Length;
using (Stream dataStream = request.GetRequestStream())
{
dataStream.Write(byteData, 0, byteData.Length);
}
}
request.UserAgent = "Mozilla/4.0 (Compatible; Windows NT 5.1; MSIE 8.0) (compatible; MSIE 8.0; Windows NT 5.1;)";
response = ((HttpWebResponse)request.GetResponse()).GetResponseStream();
if (response == null) return null;
reader = new StreamReader(response, Encoding.UTF8);
result = reader.ReadToEnd();
}
catch (Exception ex)
{
}
finally
{
reader?.Dispose();
response?.Dispose();
}
return result;
}
Ошибка.
The remote server returned an error: (401) Unauthorized.