Си диез / Говнокод #15884 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ConnectToTenderGov
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Connect connect = new Connect();
            webBrowser1.Navigate("https://tender.me.gov.ua/EDZFrontOffice/menu/ru/");
        
            while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
                Application.DoEvents();
            webBrowser1.Document.GetElementById("login:login").SetAttribute("value", "***@***.com");
            webBrowser1.Document.GetElementById("login:password").SetAttribute("value", "***");
            webBrowser1.ScriptErrorsSuppressed = true;
            webBrowser1.Document.GetElementById("login:loginButtonPopup").InvokeMember("click");
        }
    }
}

Пытался реализовать модуль авторизации, требование - должны были использоваться cookie.

Запостил: qstd qstd, (Updated )

Комментарии (27) RSS

    • Вероятно, на странице есть javascript. Пока все скрипты не отработают, не получить окончательный вид страницы.
      По этой же причине событие WebBrowser.DocumentCompleted будет срабатывать несколько раз.
      Ответить
        • Данные в этих и других полях могут обрабатываться скриптами.
          Короче, пока всё не загружено, страница может вести себя неадекватно.
          Ответить
        • Возможно, на странице в данной форме есть скрытые поля (анти-csrf или типа того), поэтому заранее подготовить запрос, не прочитав страницу, невозможно. Или есть хитрый обработчик onclick, который что-то добавляет.
          Ответить
          • P.S. А что я гадаю? Вот же:
            <input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="2419517741712404745:-3232473744580300259" autocomplete="off" />
            При каждом обновлении страницы числа меняются.
            Ответить
              • Да, но ведь он вызывает метод "click" в браузерном движке. Следовательно, это скрытое поле отправится на сервер вместе с остальными.
                Ответить
                • unit Htmlparser;
                  
                  procedure THtmlparser.Start(stream:tstream);
                  var
                    temp:string;
                    v:olevariant;
                  begin
                    if self.CoInit then
                    coinitialize(nil);
                    try
                      temp:=memorystreamtostring(tmemorystream(stream));
                      if self.BlockThirdParty then
                      temp:=stringreplace(temp,'src','',[rfreplaceall]);
                      try
                        V:=VarArrayCreate([0,0], varVariant);
                        V[0]:=temp;
                        Doc.Write(PSafeArray(TVarData(v).VArray));
                        self.InnerHtml:=doc.body.innerHTML;
                        self.OuterHtml:=doc.body.outerhtml;
                        self.OuterText:=doc.body.outertext;
                        self.InnerText:=doc.body.innertext;
                        except
                        end;
                    finally
                      if self.CoInitialized then
                      couninitialize;
                    end;
                  end;
                  Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8