Бесплатные снипеты на заказ

backoff

Client
Регистрация
20.04.2015
Сообщения
5 926
Благодарностей
6 389
Баллы
113
ну вот когда весь код был показан нормально, то и у меня заработало....
если посмотреть скрины, то нету на них первой строчки.

спс
 

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 279
Благодарностей
96
Баллы
48
А подскажите какой тип данных у project.Profile.Sex
а то делаю и string sex = project.Profile.Sex и bool sex = project.Profile.Sex, но все никак, только с var sex = project.Profile.Sex срабатывает. Но я не знаю что под этим варом имеется ввиду. Мне потом нужно в if вписывать и сравнивать равно ли False или нет, а оно ни в какую не работает
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Это тип enum (перечисления). Чтобы получить значение достаточно вызвать метод ToString()
 
  • Спасибо
Реакции: sentinel и Porosenok

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 279
Благодарностей
96
Баллы
48
О не знал что такой тип существует, но ToString уже воспользовался, спасибо
 

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

Ищу сниппеты для Post и get запросов с проверкой ответа сервера. Что бы если вышли ошибки 409,502,500, 404 и прочие выход по красной линии если ответ сервера 200 302 то по зеленой. Сниппеты нужны для того что бы не перегружать и так перегруженный шаблон. https://yadi.sk/i/ynEwtOzJ3BYDpb
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
ну как же не пашет?

проверил код

C#:
string get_cookie =project.Variables["res"].Value;

var Cookie = string.Join("; ", Regex.Matches(get_cookie, @"(?<=Set-Cookie:\ ).*?(?=;)").Cast<Match>().Select(x=>x.Value));
return Cookie;
куки выпарсило
а если кука сдохла и имеет значение 0, то что делать будешь в этом случае ?
 

one

Client
Регистрация
22.09.2015
Сообщения
6 793
Благодарностей
1 264
Баллы
113
Ищу сниппеты для Post и get запросов с проверкой ответа сервера. Что бы если вышли ошибки 409,502,500, 404 и прочие выход по красной линии если ответ сервера 200 302 то по зеленой. Сниппеты нужны для того что бы не перегружать и так перегруженный шаблон. https://yadi.sk/i/ynEwtOzJ3BYDpb
Так стандартными экшенами разве сильно нагрузит шаблон? Хотя... Сниппетом более этично вышло бы.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Ищу сниппеты для Post и get запросов с проверкой ответа сервера. Что бы если вышли ошибки 409,502,500, 404 и прочие выход по красной линии если ответ сервера 200 302 то по зеленой. Сниппеты нужны для того что бы не перегружать и так перегруженный шаблон. https://yadi.sk/i/ynEwtOzJ3BYDpb
ну наверно чтобы не лепить строки проверок создай класс, вроде для тебя не сложно это сделать
 

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

ну наверно чтобы не лепить строки проверок создай класс, вроде для тебя не сложно это сделать
Я бы вообще на xnet все все сделал если бы там можно было куки вытягивать.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
C#:
bool log = true;
bool https = false;
bool socks = false;

var contentResponse = "";
var url = project.Variables["Url"].Value;
var proxy = project.Variables["Proxy"].Value;
var useragent = project.Variables["UserAgent"].Value;

CookieDictionary cookies = new CookieDictionary();

try
{
    using (var request = new HttpRequest())
    {
        request.KeepAlive = true;
        request.UserAgent = useragent;
        request.AllowAutoRedirect = true;
        request.MaximumAutomaticRedirections = 5;
    
        request.AddHeader("Upgrade-Insecure-Requests",  "1")
               .AddHeader(HttpHeader.AcceptLanguage, "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4")
               .AddHeader(HttpHeader.Accept, "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
               .Cookies = cookies;
    
        if(https)
            request.Proxy = HttpProxyClient.Parse(proxy);
        if(socks)
            request.Proxy = Socks5ProxyClient.Parse(proxy);
    
        HttpResponse response = request.Get(url);
    
        cookies = response.Cookies;
    
        contentResponse = response.ToString();
    
        if(contentResponse == "")
        {
            //project.SendErrorToLog("", "Поток " + Stream + " -> HttpRequest.Response пуст\r\n" + url, log);
            project.Variables["errorServer"].Value = "1";
            return null;
        }
    
        //project.Variables["response"].Value = contentResponse;
    }
}
catch (Exception e)
{
    //project.SendErrorToLog("", "Поток " + Stream + " --> HttpRequest --> " + e.Message, log);
    project.Variables["errorServer"].Value = "1";
    return null;
}
Это для кубика сишного

P.S. ну и саму либу там рихтонуть немного нуно )
 
Последнее редактирование:

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 654
Благодарностей
1 320
Баллы
113
C#:
bool log = true;
bool https = false;
bool socks = false;

var contentResponse = "";
var url = project.Variables["Url"].Value;
var proxy = project.Variables["Proxy"].Value;
var useragent = project.Variables["UserAgent"].Value;

CookieDictionary cookies = new CookieDictionary();

try
{
    using (var request = new HttpRequest())
    {
        request.KeepAlive = true;
        request.UserAgent = useragent;
        request.AllowAutoRedirect = true;
        request.MaximumAutomaticRedirections = 5;
   
        request.AddHeader("Upgrade-Insecure-Requests",  "1")
               .AddHeader(HttpHeader.AcceptLanguage, "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4")
               .AddHeader(HttpHeader.Accept, "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
               .Cookies = cookies;
   
        if(https)
            request.Proxy = HttpProxyClient.Parse(proxy);
        if(socks)
            request.Proxy = Socks5ProxyClient.Parse(proxy);
   
        HttpResponse response = request.Get(url);
   
        cookies = response.Cookies;
   
        contentResponse = response.ToString();
   
        if(contentResponse == "")
        {
            //project.SendErrorToLog("", "Поток " + Stream + " -> HttpRequest.Response пуст\r\n" + url, log);
            project.Variables["errorServer"].Value = "1";
            return null;
        }
   
        //project.Variables["response"].Value = contentResponse;
    }
}
catch (Exception e)
{
    //project.SendErrorToLog("", "Поток " + Stream + " --> HttpRequest --> " + e.Message, log);
    project.Variables["errorServer"].Value = "1";
    return null;
}
Это для кубика сишного

P.S. ну и саму либу там рихтонуть немного нуно )
Молодец котяра, наконец то от тебя хоть какой то толк появился кроме спама, лови + в репу) Продолжай помогать людям и будешь молодцом!
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Молодец котяра, наконец то от тебя хоть какой то толк появился кроме спама, лови + в репу) Продолжай помогать людям и будешь молодцом!
)))) ну ты хоть не смеши меня, если есть желание я всегда помогу, а форум вообщето для общения а не скороя помощь это
 
  • Спасибо
Реакции: masterLomaster

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28
C#:
var listFrom = project.Lists["Список 1"];
var listTo = project.Lists["Список 2"];
listTo.AddRange(listFrom);
А как скопировать список в файл, а лучше несколько списков в несколько файлов?
Спасибо
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
651
Баллы
93
А как скопировать список в файл, а лучше несколько списков в несколько файлов?
Спасибо
C#:
var file = Path.Combine(project.Directory,"список 1.txt");
var list = project.Lists["Список 1"];
File.WriteAllLines(file,list);
 
  • Спасибо
Реакции: Osminogus и sentinel

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
651
Баллы
93
C#:
bool log = true;
bool https = false;
bool socks = false;

var contentResponse = "";
var url = project.Variables["Url"].Value;
var proxy = project.Variables["Proxy"].Value;
var useragent = project.Variables["UserAgent"].Value;

CookieDictionary cookies = new CookieDictionary();

try
{
    using (var request = new HttpRequest())
    {
        request.KeepAlive = true;
        request.UserAgent = useragent;
        request.AllowAutoRedirect = true;
        request.MaximumAutomaticRedirections = 5;
  
        request.AddHeader("Upgrade-Insecure-Requests",  "1")
               .AddHeader(HttpHeader.AcceptLanguage, "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4")
               .AddHeader(HttpHeader.Accept, "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
               .Cookies = cookies;
  
        if(https)
            request.Proxy = HttpProxyClient.Parse(proxy);
        if(socks)
            request.Proxy = Socks5ProxyClient.Parse(proxy);
  
        HttpResponse response = request.Get(url);
  
        cookies = response.Cookies;
  
        contentResponse = response.ToString();
  
        if(contentResponse == "")
        {
            //project.SendErrorToLog("", "Поток " + Stream + " -> HttpRequest.Response пуст\r\n" + url, log);
            project.Variables["errorServer"].Value = "1";
            return null;
        }
  
        //project.Variables["response"].Value = contentResponse;
    }
}
catch (Exception e)
{
    //project.SendErrorToLog("", "Поток " + Stream + " --> HttpRequest --> " + e.Message, log);
    project.Variables["errorServer"].Value = "1";
    return null;
}
Это для кубика сишного

P.S. ну и саму либу там рихтонуть немного нуно )
Эм, а зачем cookies = response.Cookies; ?
Словарь же и так по умолчанию обновится.
Для того чтобы куки между кубиками передавать можно их загнать в project.Context, а еще лучше сам HttpRequest туда запихнуть.

Если же нам надо пришедшие куки в Raw формате, то мы их можем получить так:
C#:
// Все куки что пришли в ответе
request.Response.EnumerateRawCookies(); 
// Кука по имени
request.Response.GetRawCookie("CookieName"); 
// Есть кука с таким именем или нет
request.Response.ContainsRawCookie("CookieName");
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Эм, а зачем cookies = response.Cookies; ?
Словарь же и так по умолчанию обновится.
Для того чтобы куки между кубиками передавать можно их загнать в project.Context, а еще лучше сам HttpRequest туда запихнуть.

Если же нам надо пришедшие куки в Raw формате, то мы их можем получить так:
C#:
// Все куки что пришли в ответе
request.Response.EnumerateRawCookies();
// Кука по имени
request.Response.GetRawCookie("CookieName");
// Есть кука с таким именем или нет
request.Response.ContainsRawCookie("CookieName");
у меня в общем коде и поэтому мне в кубики передавать нинадо

P.S. cookies = response.Cookies;
тут наоборот получает а не обнуляет
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
651
Баллы
93
у меня в общем коде и поэтому мне в кубики передавать нинадо

P.S. cookies = response.Cookies;
тут наоборот получает а не обнуляет
Я про обнуляет не говорил, я имелл ввиду что cookies = response.Cookies; бесмысленная строка, т.к. они ссылаются на одну и туже коллекцию.

C#:
//Создали коллекцию
CookieDictionary cookies = new CookieDictionary();
//Здесь передается ссылка на объект, новый объект не создается 
request.Cookies = cookies;
//Сделали запроc
HttpResponse response = request.Get(url);
//Получим True, т.к. это один объект.
return (cookies == response.Cookies);
 
  • Спасибо
Реакции: ssXXXss и samsonnn

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 654
Благодарностей
1 320
Баллы
113
Я про обнуляет не говорил, я имелл ввиду что cookies = response.Cookies; бесмысленная строка, т.к. они ссылаются на одну и туже коллекцию.

C#:
//Создали коллекцию
CookieDictionary cookies = new CookieDictionary();
//Здесь передается ссылка на объект, новый объект не создается
request.Cookies = cookies;
//Сделали запроc
HttpResponse response = request.Get(url);
//Получим True, т.к. это один объект.
return (cookies == response.Cookies);
Жду не дождусь когда наконец утрут нос котяре-спамеру, молодец поймал котяру!!!
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Вообще-то это делается для того, чтобы кукиконтейнер (в данном случае куки словарь) можно было использовать в классах как поле. Так что все норм, а ссылка и вправду указывает на 1 и тот же объект.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Я про обнуляет не говорил, я имелл ввиду что cookies = response.Cookies; бесмысленная строка, т.к. они ссылаются на одну и туже коллекцию.

C#:
//Создали коллекцию
CookieDictionary cookies = new CookieDictionary();
//Здесь передается ссылка на объект, новый объект не создается
request.Cookies = cookies;
//Сделали запроc
HttpResponse response = request.Get(url);
//Получим True, т.к. это один объект.
return (cookies == response.Cookies);
и что ты потом Ttrue будешь передавать во втором запросе ?

чёт не догоняю что не нравится

твой ответ кук
2017-02-01_051512.png

мой ответ
2017-02-01_051619.png

Если строка 23 помешала то это и коню ясно что в первом запросе можно это вообще не писать. Но не вижу большой потери в чём то в отличие от некоторых которые через чур смотрю разговорились и пользуются браузерными шабами

@samsonnn ты бы придержал свой язычок а то смотрю как с другом общаешься
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
Жду не дождусь когда наконец утрут нос котяре-спамеру, молодец поймал котяру!!!
А ты сам то понял о чем @Adigen написал?:-)

Вообще-то это делается для того, чтобы кукиконтейнер (в данном случае куки словарь) можно было использовать в классах как поле. Так что все норм, а ссылка и вправду указывает на 1 и тот же объект.
Ты сам то понял что написал? Вопрос был про то, что нет смысла повторно объект пихать в какую то переменную, а ты про то, что можно использовать в классе.

Эта строка как раз нужна. Все правильно, ты создаешь запрос, передаешь в него объект с кукисами.
А вот cookies = response.Cookies; это лишнее, т.к. CookieDictionary cookies это объект, который ты передаешь в запросе.
Когда приходит ответ, он автоматом обновляется, опять же, т.к. это объект, поэтому в данной строчке смысла нет.

Вот когда зенковским способом делается запрос, приходит ответ, из него выковыриваются кукисы в string а потом передаются в следующем запросе, там да, надо выковыривать и постоянно обновлять переменную с кукисами.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Эта строка как раз нужна. Все правильно, ты создаешь запрос, передаешь в него объект с кукисами.
А вот cookies = response.Cookies; это лишнее, т.к. CookieDictionary cookies это объект, который ты передаешь в запросе.
Когда приходит ответ, он автоматом обновляется, опять же, т.к. это объект, поэтому в данной строчке смысла нет.

Вот когда зенковским способом делается запрос, приходит ответ, из него выковыриваются кукисы в string а потом передаются в следующем запросе, там да, надо выковыривать и постоянно обновлять переменную с кукисами.
проверив и убрав строку теперь понял что в контейнере и без этой строки куки попали

2017-02-01_055203.png
 
  • Спасибо
Реакции: Adigen

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28
C#:
var file = Path.Combine(project.Directory,"список 1.txt");
var list = project.Lists["Список 1"];
File.WriteAllLines(file,list);
Да, работает, спасибо.
Но, вопрос:
1. В несколько файлов из нескольких списков - так.
2. Таким кодом оно перезаписывает файл, а как дописать в существующий?
Спасибо.
Код:
var file = Path.Combine(project.Directory,"Список 1.txt");
var file1 = Path.Combine(project.Directory,"Список 2.txt");
var list = project.Lists["list 1"];
var list1 = project.Lists["list 2"];
File.WriteAllLines(file,list);
File.WriteAllLines(file1,list1);
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
651
Баллы
93
Да, работает, спасибо.
Но, вопрос:
1. В несколько файлов из нескольких списков - так.
2. Таким кодом оно перезаписывает файл, а как дописать в существующий?
Спасибо.
Код:
var file = Path.Combine(project.Directory,"Список 1.txt");
var file1 = Path.Combine(project.Directory,"Список 2.txt");
var list = project.Lists["list 1"];
var list1 = project.Lists["list 2"];
File.WriteAllLines(file,list);
File.WriteAllLines(file1,list1);
C#:
File.AppendAllLines(file,list);
 
  • Спасибо
Реакции: sentinel

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28
C#:
File.AppendAllLines(file,list);
А как в путь сохранения файла (например вместо список 1) вставить переменную проекта.
Спасибо.
Код:
var file = Path.Combine(project.Directory,"список 1.txt");
var list = project.Lists["Список 1"];
File.WriteAllLines(file,list);
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
del
 
Последнее редактирование:

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28
C#:
var file = Path.Combine(project.Directory,"список 1.txt");
var list = project.Variables["i"].Value;
File.WriteAllText(file,list);
Спасибо, но немного не так. Я имел ввиду в первой строчке "список 1.txt" заменить на переменную из проекта.
Спасибо.
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
Спасибо, но немного не так. Я имел ввиду в первой строчке "список 1.txt" заменить на переменную из проекта.
Спасибо.
C#:
var file = Path.Combine(project.Directory,project.Variables["z1"].Value);
var list = project.Lists["Список 1"];
File.WriteAllLines(file,list);
 

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