Как составить POST запрос на C#?
В Постмане составил такой запрос. Возвращает то, что нужно. Как теперь воспроизвести это на c#?
Нигде не нашел чтобы в POST запросе передавались сразу и тело и заголовки и параметры. Как правильно сделать?

Ответы (2 шт):
Автор решения: rahmanny
→ Ссылка
Можете использовать RestSharp
using RestSharp;
var client = new RestClient("https://wsdemo......");
var request = new RestRequest("?task=login&view=login"); // Параметры
request.Method = Method.POST;
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddHeader("Cookie", "PHPSESSID=09812");
// request.AddCookie("Cookie","PHPSESSID=09812"); // Или использовать метод AddCookie
request.AddParameter("application/x-www-form-urlencoded",
$"user[login]={login}&user[password]={password}", // Передать логин и пароль
ParameterType.RequestBody);
var response = client.Execute(request);
UPD
Передача логина и пароля в кодировке:
var client = new RestClient("https://wsdemo......");
var request = new RestRequest("?task=login&view=login"); // Параметры
request.Method = Method.POST;
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("user[login]", login);
request.AddParameter("user[password]", password);
request.AddHeader("Cookie", "PHPSESSID=09812");
var response = client.Execute(request);
Автор решения: Support Fito
→ Ссылка
Использовать параметры в POST запросе не нужно и не правильно. Это не GET запрос.
using System.Collections.Generic;
using System.Net.Http;
namespace TestProject
{
class Program
{
static async Task Main(string[] args)
{
string url = "your url";
var content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("key", "value"),
new KeyValuePair<string, string>("key2", "value2"),
});
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Add("header name", "header value");
client.DefaultRequestHeaders.Add("header name2", "header value2");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
}
}
}
}

