- Регистрация
- 06.09.2016
- Сообщения
- 653
- Благодарностей
- 466
- Баллы
- 63
Задача следующая. Есть готовый сниппет:
Вот первая строка в сниппете:
На выходе получается сохраненная капча по пути D:\Zenno\Капча\ c названием "captcha.png"
А передо мной стоит задача, чтобы капча сохранялась в таком виде: captchaXXXXX.png
где XXXXX это значение переменной {-Variable.rnd_CaptchaName-} , которая будет генерироваться кубиком "рандом".
Спросил у некоторых знатоков, сходу решения мне предоставить не смогли. Как я понял к данному сниппету будет проблематично что то дописать. Мне предложили иной вариант - гет запросом получать содержимое капчи, а потом код добавлять в файл и сохранять как png с нужным названием. На данный момент я не нашел никакой информации по этому моменту на форуме, на стандартных экшенах "гет" и "файл" реализовать такое не получается, нужен C# код.
Мой GET\POST шаблон работает на 300-500 потоках, поэтому сразу скажу, что делать лишние циклы, проверки и кастыли - это не решение проблемы. Цель в том, чтобы полностью избавиться от пересечения потоков, а для этого нужно или скачивать капчу гет запросом, присваивая уникальное имя, или же создавать файл по средствам содержимого гет запроса.
P.S. самое интересное, что сниппет я нашел в посте другого человека, который задавался тем же вопросом, но ему так и не ответили. http://zennolab.com/discussion/threads/besplatnye-snipety-na-zakaz.23450/page-41#post-308852 Думаю, что решение данной ситуации будет полезно и информативно для тех кто столкнется с похожей задачей. Буду признателен за любую подсказку по конкретно поставленным задачам.
Код:
string url = @"https://site.ru/cgi-bin/captcha&random="+ project.Variables["get_rnd_key"].Value +".png";
ZennoPoster.HttpGet(
url, // адрес картинки
"", // прокси если нужно
"UTF-8", // кодировка
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.File, // скачиваем файл
30000, // ждем ответ от сервера
"", //куки если нужно
"", //юзерагент если нужно
true, // использовать редирект
3, // количество редиректов
new String[]{}, // заголовки если нужно
@"D:\Zenno\Капча\", // куда сохранить фаил
true // использовать оригинальный url
);
Это GET запрос для получения капчи. Переменная get_rnd_key является идентификатором капчи, он плюсуется к основной ссылке. И в конце добавляется расширение png.string url = @"https://site.ru/cgi-bin/captcha&random="+ project.Variables["get_rnd_key"].Value +".png";
На выходе получается сохраненная капча по пути D:\Zenno\Капча\ c названием "captcha.png"
А передо мной стоит задача, чтобы капча сохранялась в таком виде: captchaXXXXX.png
где XXXXX это значение переменной {-Variable.rnd_CaptchaName-} , которая будет генерироваться кубиком "рандом".
Если к пути сохранения добавлять переменную, то создастся папка со значением переменной. А мне нужно именно к файлу добавить, чтобы рандомизировать название и при этом не менять ссылку.@"D:\Zenno\Капча\", // куда сохранить фаил
Спросил у некоторых знатоков, сходу решения мне предоставить не смогли. Как я понял к данному сниппету будет проблематично что то дописать. Мне предложили иной вариант - гет запросом получать содержимое капчи, а потом код добавлять в файл и сохранять как png с нужным названием. На данный момент я не нашел никакой информации по этому моменту на форуме, на стандартных экшенах "гет" и "файл" реализовать такое не получается, нужен C# код.
Мой GET\POST шаблон работает на 300-500 потоках, поэтому сразу скажу, что делать лишние циклы, проверки и кастыли - это не решение проблемы. Цель в том, чтобы полностью избавиться от пересечения потоков, а для этого нужно или скачивать капчу гет запросом, присваивая уникальное имя, или же создавать файл по средствам содержимого гет запроса.
P.S. самое интересное, что сниппет я нашел в посте другого человека, который задавался тем же вопросом, но ему так и не ответили. http://zennolab.com/discussion/threads/besplatnye-snipety-na-zakaz.23450/page-41#post-308852 Думаю, что решение данной ситуации будет полезно и информативно для тех кто столкнется с похожей задачей. Буду признателен за любую подсказку по конкретно поставленным задачам.
Последнее редактирование: