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

  • Автор темы Автор темы CSS
  • Дата начала Дата начала
А подскажите какой тип данных у project.Profile.Sex
а то делаю и string sex = project.Profile.Sex и bool sex = project.Profile.Sex, но все никак, только с var sex = project.Profile.Sex срабатывает. Но я не знаю что под этим варом имеется ввиду. Мне потом нужно в if вписывать и сравнивать равно ли False или нет, а оно ни в какую не работает
 
Это тип enum (перечисления). Чтобы получить значение достаточно вызвать метод ToString()
 
  • Спасибо
Реакции: sentinel и Porosenok
О не знал что такой тип существует, но ToString уже воспользовался, спасибо
 
Ищу сниппеты для Post и get запросов с проверкой ответа сервера. Что бы если вышли ошибки 409,502,500, 404 и прочие выход по красной линии если ответ сервера 200 302 то по зеленой. Сниппеты нужны для того что бы не перегружать и так перегруженный шаблон. https://yadi.sk/i/ynEwtOzJ3BYDpb
 
ну как же не пашет?

проверил код

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, то что делать будешь в этом случае ?
 
Ищу сниппеты для Post и get запросов с проверкой ответа сервера. Что бы если вышли ошибки 409,502,500, 404 и прочие выход по красной линии если ответ сервера 200 302 то по зеленой. Сниппеты нужны для того что бы не перегружать и так перегруженный шаблон. https://yadi.sk/i/ynEwtOzJ3BYDpb
Так стандартными экшенами разве сильно нагрузит шаблон? Хотя... Сниппетом более этично вышло бы.
 
Ищу сниппеты для Post и get запросов с проверкой ответа сервера. Что бы если вышли ошибки 409,502,500, 404 и прочие выход по красной линии если ответ сервера 200 302 то по зеленой. Сниппеты нужны для того что бы не перегружать и так перегруженный шаблон. https://yadi.sk/i/ynEwtOzJ3BYDpb
ну наверно чтобы не лепить строки проверок создай класс, вроде для тебя не сложно это сделать
 
ну наверно чтобы не лепить строки проверок создай класс, вроде для тебя не сложно это сделать
Я бы вообще на xnet все все сделал если бы там можно было куки вытягивать.
 
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. ну и саму либу там рихтонуть немного нуно )
 
Последнее редактирование:
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. ну и саму либу там рихтонуть немного нуно )

Молодец котяра, наконец то от тебя хоть какой то толк появился кроме спама, лови + в репу) Продолжай помогать людям и будешь молодцом!
 
Молодец котяра, наконец то от тебя хоть какой то толк появился кроме спама, лови + в репу) Продолжай помогать людям и будешь молодцом!
)))) ну ты хоть не смеши меня, если есть желание я всегда помогу, а форум вообщето для общения а не скороя помощь это
 
  • Спасибо
Реакции: masterLomaster
C#:
Развернуть Свернуть Копировать
var listFrom = project.Lists["Список 1"];
var listTo = project.Lists["Список 2"];
listTo.AddRange(listFrom);

А как скопировать список в файл, а лучше несколько списков в несколько файлов?
Спасибо
 
А как скопировать список в файл, а лучше несколько списков в несколько файлов?
Спасибо
C#:
Развернуть Свернуть Копировать
var file = Path.Combine(project.Directory,"список 1.txt");
var list = project.Lists["Список 1"];
File.WriteAllLines(file,list);
 
  • Спасибо
Реакции: Osminogus и sentinel
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");
 
Эм, а зачем cookies = response.Cookies; ?
Словарь же и так по умолчанию обновится.
Для того чтобы куки между кубиками передавать можно их загнать в project.Context, а еще лучше сам HttpRequest туда запихнуть.

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

у меня в общем коде и поэтому мне в кубики передавать нинадо

P.S. cookies = response.Cookies;
тут наоборот получает а не обнуляет
 
у меня в общем коде и поэтому мне в кубики передавать нинадо

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
Я про обнуляет не говорил, я имелл ввиду что cookies = response.Cookies; бесмысленная строка, т.к. они ссылаются на одну и туже коллекцию.

C#:
Развернуть Свернуть Копировать
//Создали коллекцию
CookieDictionary cookies = new CookieDictionary();
//Здесь передается ссылка на объект, новый объект не создается
request.Cookies = cookies;
//Сделали запроc
HttpResponse response = request.Get(url);
//Получим True, т.к. это один объект.
return (cookies == response.Cookies);
Жду не дождусь когда наконец утрут нос котяре-спамеру, молодец поймал котяру!!!
 
Вообще-то это делается для того, чтобы кукиконтейнер (в данном случае куки словарь) можно было использовать в классах как поле. Так что все норм, а ссылка и вправду указывает на 1 и тот же объект.
 
Я про обнуляет не говорил, я имелл ввиду что 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 ты бы придержал свой язычок а то смотрю как с другом общаешься
 
Жду не дождусь когда наконец утрут нос котяре-спамеру, молодец поймал котяру!!!
А ты сам то понял о чем @Adigen написал?:-)

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

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

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

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

проверив и убрав строку теперь понял что в контейнере и без этой строки куки попали

2017-02-01_055203.png
 
  • Спасибо
Реакции: Adigen
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);
 
Да, работает, спасибо.
Но, вопрос:
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
C#:
Развернуть Свернуть Копировать
File.AppendAllLines(file,list);
А как в путь сохранения файла (например вместо список 1) вставить переменную проекта.
Спасибо.
Код:
Развернуть Свернуть Копировать
var file = Path.Combine(project.Directory,"список 1.txt");
var list = project.Lists["Список 1"];
File.WriteAllLines(file,list);
 
del
 
Последнее редактирование:
C#:
Развернуть Свернуть Копировать
var file = Path.Combine(project.Directory,"список 1.txt");
var list = project.Variables["i"].Value;
File.WriteAllText(file,list);
Спасибо, но немного не так. Я имел ввиду в первой строчке "список 1.txt" заменить на переменную из проекта.
Спасибо.
 
Спасибо, но немного не так. Я имел ввиду в первой строчке "список 1.txt" заменить на переменную из проекта.
Спасибо.
C#:
Развернуть Свернуть Копировать
var file = Path.Combine(project.Directory,project.Variables["z1"].Value);
var list = project.Lists["Список 1"];
File.WriteAllLines(file,list);
 

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