Post запрос на Steam (С#)

243
30 июня 2022, 18:50

Хочу написать бота, с разным функционалом, для своих нужд для Steam. Одна из функций это спам в этот Топик. Все возможные и нужные проверки, а так же тайминги уже реализовал, вопрос встал с самим запросом добавление коментария в топик. Использую для запроса HttpClient и HttpResponseMessage для приятия ответа. Так же при помощи них сделал авторизацию. Отследил, что при отправке с браузера отправляется 2 запроса:

1ый отправляется на адрес https://steamcommunity.com/comment/ForumTopic/post/103582791432987389/882957625858802610

2ой запрос

После отправляется GET-запрос на обновление формы.

По началу думал, как формируется ссылка первого запроса, но эти Айдишники можно вытянуть из формы и сформировать ссылку. После я попробовал воссоздать запрос на HttpClient, впихнув в него такие же данные, которые выявил при отслеживании и в итоге ответ {"success":false}. После поработал с заголовками, т.к заголовки авторизации и при отправки запроса на добавления комментария немного разнятся, но даже это не помогло. Ок. Грешил на то что, я как то не правильно формирую запрос (хотя авторизацию реализовал вполне нормально). Решил перейти на postman и там попробовать, воссоздал запрос (печеньки, заголовки, данные), ответ от сервера такой же.

В итоге прошу помощи с этим запросом или группой запросов.

HttpClient client;
string result;
HttpResponseMessage request;
    
CookieContainer cookieContainer;
HttpClientHandler msgHandler;
    
client.DefaultRequestHeaders.Add("Accept", "*/*");
client.DefaultRequestHeaders.Add("DNT", "1");
client.DefaultRequestHeaders.Add("X-Requested-With", "XMLHttpRequest");
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36");
    
client.DefaultRequestHeaders.Add("Sec-Fetch-Site", "same-origin");
client.DefaultRequestHeaders.Add("Sec-Fetch-Mode", "cors");
client.DefaultRequestHeaders.Add("Sec-Fetch-Dest", "empty");
client.DefaultRequestHeaders.Add("donotcache", "155524323");
    
cookieContainer = new CookieContainer();
msgHandler = new HttpClientHandler();
msgHandler.CookieContainer = cookieContainer;
client = new HttpClient(msgHandler);
    
    
cookieList = new List<Cookie>();
    
string s = $"{{\"topic_permissions\":{{\"can_view\":1,\"can_post\":1,\"can_reply\":1,\"is_banned\":0,\"can_delete\":0,\"can_edit\":0}},\"original_poster\":167429074,\"topic_gidanswer\":\"0\",\"forum_appid\":0,\"forum_public\":0,\"forum_type\":\"General\",\"forum_gidfeature\":\"0\"}}";
Dictionary<string, string> data = new Dictionary<string, string>();
data.Add("сomment", "+++++++++");
data.Add("count", "15");
data.Add("extended_data", s);
data.Add("feature2", "364043054108978276");
data.Add("include_raw", "true");
data.Add("oldestfirst", "true");                                                     
data.Add("sessionid", "d85112a4197fa0a638ffea9c");
                              
request = await client.PostAsync($"https://steamcommunity.com/comment/ForumTopic/post/103582791432987389/882957625858802610/", new FormUrlEncodedContent(data));
                                                              
result = await request.Content.ReadAsStringAsync();
READ ALSO
Создание объекта в другом домене

Создание объекта в другом домене

Изучаю C# по книге Рихтера и застопорился на создании объекта в соседнем доменеКопипаст кода из книги не выполняется

146
Почему не работает e.preventDefault?

Почему не работает e.preventDefault?

Подскажите пожалуйста, почему в ei11 форма делает перезагрузку, хотя прописал preventDefault, только в ie такой баг:

223
подскажите почему closest не работает в ie11

подскажите почему closest не работает в ie11

подскажите в чем может быть ошибка, в ie11 только в одном месте не отработывает полифил для closest? SCRIPT5007: Не удалось получить свойство "matches"...

177
Как очистить инпут типа file

Как очистить инпут типа file

есть форма в которой пользможет добавлять изображения и при необходимости удалять его

246