Не получается выполнить запрос на c# как в postman
С помощью Postman я делаю POST запрос на страницу naurok.com.ua/test/join. Этот запрос должен вернуть мне html страницу с тестами, точнее html, заготовленный под них. Всё прекрасно работает:
Content-Type: application/x-www-form-urlencoded
Имя можно любое.
Код: 775305.
_csrf можно найти в head-е страницы naurok.com.ua/test/join (он каждый раз генерируется новый и действителен на протяжении пары часов)
Я пробовал сделать запрос с такими же хедерами и данными, однако в ответ сайт мне кидает ошибку 400. После этого я решил скопировать код, сгенерированный Postman-ом для c#. Однако и он не работает корректно:
Код из картинки:
var client = new RestClient("https://naurok.com.ua/test/join");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
// хедер постмэна я убрал, однако и с ним ничего не работает
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("application/x-www-form-urlencoded", "_csrf=W9IiWC1pzG9kRnVcKhGyQCy77hlIZjgOtnRLRUcmJpQVh2khQBG6GCIAEDBdJ58ES83WeDwBe16BLj4ycm9KzA%3D%3D%3D%3D&JoinForm%5Bname%5D=test546&JoinForm%5Bgamecode%5D=775305", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
File.WriteAllText("./response.html", response.Content); // сохранения html ответа в файл
Прошу помочь разобраться, почему мой запрос на c# и в postman работают по-разному, и как исправить. Благодарю.
Ответы (1 шт):
Можно поробовать кинуть реквест через другого клиента
using (var client = new HttpClient())
{
var request = new HttpRequestMessage(HttpMethod.Post,"https://naurok.com.ua/test/join");
request.Headers.Clear();
request.Headers.Add();
// добавляешь хедеры в формате "<key>","<value>"
...
var response = await client.SendAsync(request);
response.Content // используешь контент ответа
}

