Как загружать картинку методом POST на форум

Matemat

Client
Регистрация
20.01.2018
Сообщения
45
Благодарностей
5
Баллы
8
Господа, подскажите.
Процесс загрузки в мониторе траффика выглядит вот так:
1.png
Красной стрелкой выделил какие-то непонятные мне цифры, которые я не представляю откуда взять
2.png
3.png
4.png

В запросе OPTIONS (вообще не понял, как это сделать) только это
5.png

Ну и API_Key / Но он есть и в урле запроса
6.png
Второй запрос Post, как я понимаю, размещает ссылку на уже загруженное изображение в форму добавления ответа.
7.png
8.png
Я получаю строку с расположением файла, кладу ее в переменную через Файлы для загрузки
9.png
Потом пытаюсь выполнить вот такой POST запрос
10.png
11.png

Запрос, естественно, не приводит ни к какому результату. И вообще вот эти вот циы\ферки, на которые я стрелочкой указал - это что?
И что такое OPTIONS и как это изобразить в Zennoposter? Подскажите, кто знает, как это правильно сделать?
 

Вложения

  • 55,5 КБ Просмотры: 30

Matemat

Client
Регистрация
20.01.2018
Сообщения
45
Благодарностей
5
Баллы
8
Забыл добавить, что я что=-то видимо неправильно делаю, но мой первый запрос POST уходит без cookie. Несмотря на то, что стоит галка CookieContainer. Сейчас распарсил куки из профиля и подставил переменной. Но все равно, что-то я делаю точно не так
Код:
// Текст для обработки
string text = project.Variables["var2"].Value;
project.Variables["sessionid"].Value = Macros.TextProcessing.Regex(text, @"(?<=sessionid=)[\w\W]*?(?=;)", "0")[0].FirstOrDefault();
project.Variables["auth"].Value = Macros.TextProcessing.Regex(text, @"(?<=auth=).*?(?=;)", "0")[0].FirstOrDefault();
project.Variables["auths"].Value = Macros.TextProcessing.Regex(text, @"(?<=auths=).*?(?=;)", "0")[0].FirstOrDefault();
project.Variables["unique"].Value = Macros.TextProcessing.Regex(text, @"(?<=unique=)[\w\W]*?(?=;)", "0")[0].FirstOrDefault();
project.Variables["btIdentify"].Value = Macros.TextProcessing.Regex(text, @"(?<=btIdentify=)[\w\W]*?(?=;)", "0")[0].FirstOrDefault();
project.Variables["bti"].Value = Macros.TextProcessing.Regex(text, @"(?<=_bti=)[\w\W]*?(?=;)", "0")[0].FirstOrDefault();
project.Variables["csrftoken"].Value = Macros.TextProcessing.Regex(text, @"(?<=csrftoken=)[\w\W]*?(?=;)", "0")[0].FirstOrDefault();
project.Variables["bts"].Value = Macros.TextProcessing.Regex(text, @"(?<=\ _bts=)[\w\W]*?(?=;)", "0")[0].FirstOrDefault();
// Текст для обработки
string results = ("unique=" + project.Variables["unique"].Value + "; auth=" + project.Variables["auth"].Value + "; auths=" + project.Variables["auths"].Value + "; sessionid=" + project.Variables["sessionid"].Value + "; btIdentify=" + project.Variables["btIdentify"].Value + "; _bts=" + project.Variables["bts"].Value + "; _bti=" + project.Variables["bti"].Value + "; csrftoken=" + project.Variables["csrftoken"].Value);
return results;
 

Matemat

Client
Регистрация
20.01.2018
Сообщения
45
Благодарностей
5
Баллы
8
Думал, может запрос OPTIONS отправляет декодированную картинку.
Сделал вот так. Декодировал картинку
Код:
string Path = project.Variables["photos"].Value;
return Convert.ToBase64String(File.ReadAllBytes(Path));
А потом попробовал передать.
Код:
var response = ZennoPoster.HTTP.Request(
ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.OPTIONS, // тип запроса
"https://uploads.services.......com/api/3.0/media/create.json?api_key=...........8U3KycjAIAk46f68Zw7C6eW8WSjZvCLXebZ7p0r1yrYDrLilk2F", // адрес
project.Variables["photo_decoded"].Value, // контент запроса
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",  // тип контента
project.Variables["proxy"].Value,  // тут можно прокси прописать
"UTF-8", // кодировка
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, // что получать в ответ
30000, // таймаут
"", // куки
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3099.11 Safari/537.36", // юзерагент
true, //разрешить редиректы
5, //количество редиректов
    new[] {
     
"Accept-Language: en-US,en;q=0.5",
"Accept-Encoding: gzip, deflate, br",
"Access-Control-Request-Method: POST",
"Origin: https://.........com",
"Connection: keep-alive"
  } // дополнительные заголовки
);
return response; // положить ответ в переменную
Я понимаю, что это 99% не в ту степь, но я вообще не знаю куда смотреть.
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Я всегда делал методом проб и ошибок. Смотрел что изменяется в теле и хедерах. Рано или поздно подбирал ключик. Самое главное поймать нужные хедеры и нужные параметры тела запроса.
Без конкретного примера сложно (для меня). Напишите в ЛС, может и помогу:ce:.
 
  • Спасибо
Реакции: Matemat

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
  • Спасибо
Реакции: Matemat и gevolushn

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)