CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - HttpWebRequest + Response = logowanie do serwera pocztowego

HttpWebRequest + Response = logowanie do serwera pocztowego

problemy z tworzeniem programów do obsługi sieci, internetu, e-mail itp..

HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez Slynx » niedziela, 23 stycznia 2011, 23:03

Mam spory problem z ogarnięciem tych funkcji. Jak wynika z tematu chciałbym się zalogować na serwer pocztowy (konkretnie jako przykład. wp.pl) znając login i hasło.
Jest pewien wstępny kod, który nie działa odpowiednio:

KOD cpp:     UKRYJ  
String ^responseData = "";
    try
    {
                HttpWebRequest^ request = dynamic_cast<HttpWebRequest^> (WebRequest::Create("http://profil.wp.pl/login.html?url=http%3A%2F%2Fpoczta.wp.pl%2Findex.html%3Fflg%3D1&serwis=nowa_poczta_wp"));
      request->Accept = "*/*";
      request->AllowAutoRedirect = true;
      request->UserAgent = "http_requester/0.1";
      request->Timeout= 60000;
      request->Method = "POST";
      if (request->Method == "POST")
      {
        request->ContentType = "text/html; charset=windows-1251";
        ASCIIEncoding^ encoding = gcnew ASCIIEncoding;
        array<Byte ,1> ^ postByteArray = encoding->GetBytes("&login_username=login&login_password=pass");
        request->ContentLength = postByteArray->Length;
        Stream ^postStream = request->GetRequestStream();
        postStream->Write(postByteArray, 0, postByteArray->Length);
        postStream->Close();
      }
      HttpWebResponse ^response = dynamic_cast<HttpWebResponse^> (request->GetResponse());
          if (response->StatusCode == HttpStatusCode::OK)
      {
        Stream ^responseStream = response->GetResponseStream();
        StreamReader ^myStreamReader = gcnew StreamReader(responseStream);
        responseData = myStreamReader->ReadToEnd();
      }
      response->Close();
    }
    catch (Exception ^e)
    {
      responseData = "Error: " + e->Message;
    }
        richTextBox1->AppendText(responseData);
                                 }
 


Wstępnie do HttpWebRequest jest ładowana główna strona logowania, potem staram się zapisać jakoś wartości login i password do zmiennych znajdujących się wewnątrz dokumentu, ale raczej bezowocnie. Zastanawiam się czy nie można by od razu przekazać loginu i hasła i wywołać Request do strony logowania już z danymi, co w efekcie powinno od razu przekierować na stronę skrzynki, w przypadku poprawnego zalogowania. Jednak przyznam, że w tej kwestii jestem zielony i nie wiem jak to powinno wyglądać.

Dodatkowo, to samo wcześniej zrobiłem przez kontrolkę WebBrowser. Wpisanie danych i wywołanie zdarzenia click na przycisku (InvokeMember). A jak to powinno wyglądać w HttpWebRequest i Response ?:/ Czy dane logowania załadować do wewnątrz strony, czy przekazać w adresie poprzedzając "ampersandem". Byłbym bardzo wdzięczny gdyby ktoś mi to dogłębnie wytłumaczył, bo to podstawa do całej reszty. (Jak będę wiedział jak to działa, to sam zrobię logowanie do innych skrzynek; p)

Aha, jeszcze coś. Żeby prześledzić proces logowania na skrzynkę za pomocą przeglądarki skorzystałem ze sniffera (Fiddler), ale przeglądam wszystko co wyłapał i jakoś nie widzę by te dane (login i hasło) były przekazywane (hasło pewnie jest szyfrowane).
Wcześniej w WebBrowserze to robiłem, bo szukałem jakiejś funkcji, która da dogłębny "raport" z procesu logowania, ale też nic nie znalazłem.
I w tym momencie właśnie skończyły mi się pomysły ; p

P.S. W ostateczności można by używać WebBrowser, bo tam wszelka obsługa tego typu elementów jest banalnie prosta, jednak ta kontrolka "zżera" trochę za dużo zasobów. Wolę wykorzystać coś co jest bardziej preferowane do tego zadania ; p

Jeśli chodzi o różnice między Visualem a Builderem. Poprawność kodu nie jest aż tak istotna, ważne by było jasno przekazane, a w Builderze powinny też być te funkcje, należą do bibliotek "ogólnych".
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez polymorphism » poniedziałek, 24 stycznia 2011, 12:50

Z tym adresem, na który się łączysz, to bym uważał. Poprawny adres to http://poczta.wp.pl. URL, który teraz masz, to adres z przekierowania, i może się zmieniać, więc lepiej łącz się na ten oficjalny, szczególnie, że ustawiasz AllowAutoRedirect na true, więc z obsługą przekierowań - jak sądzę - nie powinno być problemu.

Czy dane logowania załadować do wewnątrz strony, czy przekazać w adresie poprzedzając "ampersandem"

W adresie nie możesz, ponieważ wszelkie dane rejestracyjne wysyłane są metodą POST, czyli niejawnie.

W sumie nie rozumiem, dlaczego dobierasz się do konta e-mail poprzez www, zamiast łączyć się bezpośrednio z serwerem poczty poprzez protokół SMTP lub POP3, tak jak to robią aplikacje pocztowe?
C++ Reference - opis wszystkich klas STL-a i funkcji C.

Za ten post autor polymorphism otrzymał podziękowanie od:
Slynx
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2210
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 206
System operacyjny: Windows 7 Pro
Windows 8.1
Linux Mint 19
Kompilator: Visual Studio 2015 Community
CodeLite (MinGW)
MSYS2 (MinGW, clang)
g++
Gadu Gadu: 0
    Windows XPFirefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez Slynx » poniedziałek, 24 stycznia 2011, 15:28

Przez protokół SMTP już mam napisane, ale teraz chcę przez Http, właśnie za pomocą metod Request i Response.
POST jak widzisz w kodzie jest ustawiony, ale nie wiem jak to zrobić. Co powinienem mu wysłać ? On odsyła mi pełnego htmla z formularzem logowania. Odesłać to samo z wypełnionymi polami password i login ? A przyciśnięcie "Zaloguj" ? Musi być wywołane konkretnie dla tego tagu (bo chyba tak to jest oznaczane:/).
Nie wiem właśnie jak to powinno się odbywać. Przez webBrowser był odpowiednik InvokeMember("click") i wszystko było jasne. A jak tu coś takiego powinno wyglądać ?

Na razie piszę szyfrowanie, deszyfrowanie i haszowanie danych, ale bez tych informacji to nie ruszę nigdzie dalej : /
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez polymorphism » poniedziałek, 24 stycznia 2011, 15:37

Heh, jeśli masz przez SMTP, to jakiego grzyba robisz przez HTTP? To jest tak niepewna metoda, że nie warto się za to brać i czas marnować. Dzisiaj to działa, a jutro coś zmienią i nie będzie działać - proste.

Daj sobie z tym spokój...
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2210
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 206
System operacyjny: Windows 7 Pro
Windows 8.1
Linux Mint 19
Kompilator: Visual Studio 2015 Community
CodeLite (MinGW)
MSYS2 (MinGW, clang)
g++
Gadu Gadu: 0
    Windows XPFirefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez Slynx » poniedziałek, 24 stycznia 2011, 15:47

Uwierz mi, że to jest konieczne. Przez SMTP tego nie zrobię. A co ciekawsze. W Visualu jest wszystko do obsługi SMTP, HTTP, IMAP, a do POP3 to nie ma nic, co było dla mnie zaskoczeniem. Żadnych funkcji do obsługi pobierania z serwera. Chyba że mają jakąś inną nazwę i nie znalazłem. Jednak mniejsza o to.
Dostęp do strony przez HTTP jest wymagany. Chociażby dlatego, że logowanie i wysyłanie danych przez SMTP zwiększa rozmiar danych do wysłania. Są doliczane jakieś tam dane, coś koło 20 % danych wejściowych, co można zauważyć przy wysyłaniu plików przez program pocztowy. Przy pobieraniu przez POP3 jest chyba tak samo. Obsługa tego z poziomu HTTP pomija ten problem.
Dlatego właśnie muszę wiedzieć jak to działa. A jeśli nawet nie by to użyć, to z czystej ciekawości, by po prostu to zrobić.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez polymorphism » poniedziałek, 24 stycznia 2011, 16:11

Jeśli chodzi o POP3, to poszukaj po prostu jakiejś biblioteki do obsługi tego protokołu.

Obsługa tego z poziomu HTTP pomija ten problem.

Problem trochę sztuczny, bo kto normalny wysyła duże pliki mailem? W przypadku małych plików te 20% nie ma większego znaczenia.

A jeśli nawet nie by to użyć, to z czystej ciekawości, by po prostu to zrobić.

Gdzieś były wątki o tym jak się logować na stronie - politech chyba ostatnio pytał się o to. Może tam coś znajdziesz.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2210
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 206
System operacyjny: Windows 7 Pro
Windows 8.1
Linux Mint 19
Kompilator: Visual Studio 2015 Community
CodeLite (MinGW)
MSYS2 (MinGW, clang)
g++
Gadu Gadu: 0
    Windows XPFirefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez Slynx » poniedziałek, 24 stycznia 2011, 16:15

Może Baron coś wie na ten temat :/ Coś krucho z tymi sieciami :/ Problem nie jest skomplikowany, a kod powinien być krótki, pytanie brzmi jak to zrobić. Ja się w sieciach nie orientuje dlatego właśnie staram się coś dowiedzieć, w jaki sposób są takie dane wysyłane.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez polymorphism » poniedziałek, 24 stycznia 2011, 16:31

Widzisz problem nie polega na tym 'jak' są wysyłane, tylko 'co' jest wysyłane. Być może dlatego, że nie znasz się za bardzo na sieciach nie zdajesz sobie sprawy z pewnych rzeczy i problemów (w tym przypadku mogą to być skrypty JS). Samo wysłanie danych na serwer POSTem to żadna filozofia, szczególnie jak się ma do tego gotowe klasy.

A tu masz zawartość wysyłaną przy logowaniu:

login_username=login&login_password=has%B3o&subm=&serwis=nowa_poczta_wp&idu=99&url=http%3A%2F%2Fpoczta.wp.pl%2Findex.html%3Fflg%3D1&savessl=0&logowaniessl=1&minipoczta=0&tryLogin=1&countTest=1


Wartości niektórych parametrów musisz wyciągnąć z formularza logowania - tu nic nie ma ma na sztywno ;)

W odpowiedzi dostaniesz stronę www, w której będziesz musiał znaleźć info o tym, czy logowanie się powiodło.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2210
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 206
System operacyjny: Windows 7 Pro
Windows 8.1
Linux Mint 19
Kompilator: Visual Studio 2015 Community
CodeLite (MinGW)
MSYS2 (MinGW, clang)
g++
Gadu Gadu: 0
    Windows XPFirefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez Slynx » poniedziałek, 24 stycznia 2011, 17:01

Właśnie tu był problem. w kwestii login_password. Bo to wyłapałem snifferem i tak chciałem zrobić. Login wysyłał i był wpisany w wartość value pola login, ale password... nic. Jakbym błędnie wysyłał czy coś. Zastanawiam się czy nie jest wysyłane w jakiś inny sposób. W końcu to hasło, więc nie powinno być w tak otwarty sposób wysłane. Próbowałem kilka razy i pola password nigdy nie wypełniał. Trochę się teraz douczam w kwestii HTTP, konkretnie wysyłanie i odbieranie żądań więc może wyczytam coś sensownego.
Dla pewności. To co pokazałeś powinno być w "body" przy wysyłaniu przez POST ?
I jeszcze kwestia kodowania. Tu jest w miarę jasne. Ale jakbym się chciał zalogować np. do rosyjskiej skrzynki pocztowej ? Tam jest cyrylica, czyli jeśli dobrze pamiętam strona kodowa 1251. Czy powinienem to zamieniać (dane POST) czy wysłać w tej samej co na każdy inny serwer pocztowy ? Innymi słowy, czy dane POST są niezależne od strony kodowania.
Widziałem kilka przykładowych kodów, w części coś było zamieniane, a w niektórych dla tych samych skrzynek chyba nie(Inne kwestia że nie sprawdzałem czy te kody są sprawne w działaniu).

Co do "click" na login button. Jestem w trakcie czytania, ale jeśli dobrze zrozumiałem to takie elementy, czyli wywołania są realizowane przez GET ? Jeśli tak to jak. Najpierw pakiet POST-em, a potem potwierdzenie GET-em ? :/ Coś mi to nie bardzo pasuje...
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez polymorphism » poniedziałek, 24 stycznia 2011, 18:24

To co pokazałeś powinno być w "body" przy wysyłaniu przez POST ?

Jakim body? To są dane wysłane komendą POST.

Innymi słowy, czy dane POST są niezależne od strony kodowania.

Nie.

Ostatniego pytania nie rozumiem...
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2210
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 206
System operacyjny: Windows 7 Pro
Windows 8.1
Linux Mint 19
Kompilator: Visual Studio 2015 Community
CodeLite (MinGW)
MSYS2 (MinGW, clang)
g++
Gadu Gadu: 0
    Windows XPFirefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez Cyfrowy Baron » poniedziałek, 24 stycznia 2011, 18:56

Może Baron coś wie na ten temat :/


Ja mam o tym jeszcze mniejsze pojęcie od Ciebie. Nie specjalnie mnie to interesuje, jak potrzebuję programu z funkcją wysyłania i odbieranie e-maili to idę po najkrótszej linii i korzystam z SMTP i POP3, a konkretnie z INDY. Rozmiarem załączników też się specjalnie nie przejmuje, gdyż jak napisał polymorphism przez e-mail wielki załączników się nie wysyła.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4730
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez Slynx » poniedziałek, 24 stycznia 2011, 20:56

Z tym "body" to nie istotne. Pomyliłem pewne funkcje. Co do strony kodowania to ok. Jest chyba też pewna funkcja, która wysyła dane w sposób niezależny od strony kodowania, escape czy jakoś tak, ale to już znajdę.

Kwestia tego o czym wspominałem. Polymorphism, jak już wspomniałeś o tym i się w to zaangażowałeś (;p) to może mógłbyś sprawdzić czy to działa. Za pomocą HttpWeb Request i Response. Oboje pracujemy w Visualu, więc kod byłby identyczny, a ja sam jak na razie tego nie ruszę, bo nie wiem jak. Pokazałbyś kod dla logowania, jeśli to potrafisz zrobić. Wszystko funkcje do tego potrzebne są w przedstawionym przeze mnie kodzie, kwestia co która ma wysyłać i w jakiej kolejności.

Baronie, "rozgryzam" sposób działania sieci p2m. To jest chyba jedyny przypadek gdzie korzystanie z Http ma przewagę nad SMTP/POP3 (choć nie zawsze). Poza tym, zwyczajnie chciałbym wiedzieć jak można obsługiwać całą stronę jedyne na podstawie prostych żądań i odpowiedzi z poziomu kodu. To daje dużo ciekawych możliwości. Bardzo mnie to interesuje, bo od strony sieciowej nigdy programowaniem się nie zajmowałem.

Znalazłem coś takiego:

HTML form data is usually URL-encoded to package it in a GET or POST submission. In a nutshell, here's how you URL-encode the name-value pairs of the form data:

1. Convert all "unsafe" characters in the names and values to "%xx", where "xx" is the ascii value of the character, in hex. "Unsafe" characters include =, &, %, +, non-printable characters, and any others you want to encode-- there's no danger in encoding too many characters. For simplicity, you might encode all non-alphanumeric characters.
2. Change all spaces to plusses.
3. String the names and values together with = and &, like

name1=value1&name2=value2&name3=value3

4. This string is your message body for POST submissions, or the query string for GET submissions.

For example, if a form has a field called "name" that's set to "Lucy", and a field called "neighbors" that's set to "Fred & Ethel", the URL-encoded form data would be

name=Lucy&neighbors=Fred+%26+Ethel

with a length of 34.

Z czego jednoznacznie wynika, że przez POST powinienem mu podać wartości login_username i login_password które są wewnątrz dokumentu. A teraz co z "zaloguj się" ? To też trzeba wywołać, i to konkretnie na tym elemencie, bo el. interakcji z użytkownikiem może być więcej.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez polymorphism » poniedziałek, 24 stycznia 2011, 22:03

Polymorphism, jak już wspomniałeś o tym i się w to zaangażowałeś (;p) to może mógłbyś sprawdzić czy to działa.

Jak już kiedyś pisałem, nie znam w ogóle C++/CLI i nie znam klas platformy .NET. A wgryzać w to teraz po prostu mi się nie chce.

Z czego jednoznacznie wynika, że przez POST powinienem mu podać wartości login_username i login_password które są wewnątrz dokumentu.

Przecież to tylko przykład! A to, co powinieneś wysłać przy logowaniu, podałem wcześniej. Jeśli nie wiesz, co to za parametry i skąd się wzięły, to podejrzyj sobie kod formularza:

KOD text:     UKRYJ  
&login_username=login
&login_password=has%B3o
&subm=
&serwis=nowa_poczta_wp
&idu=99
&url=http%3A%2F%2Fpoczta.wp.pl%2Findex.html%3Fflg%3D1
&savessl=0
&logowaniessl=1
&minipoczta=0
&tryLogin=1
&countTest=1
KOD html:     UKRYJ  
<form action="/login_poczta.html" method="post" name="logowanie" onsubmit="return setAction(this);">
        <p><label>login:</label> <input ... type="text" name="login_username" ... /></p>
        <p><label>hasło:</label> <input type="password" ... name="login_password" ... /></p>
        <input type="checkbox" name="mini" value="1" />minipoczta WP
        <input type="submit" tabindex="3" value="" class="zal" name="subm" title="zaloguj się" />
        <input type="hidden" name="serwis" value="nowa_poczta_wp" />
        <input type="hidden" name="idu" value="99" />
        <input type="hidden" name="url" value="http://poczta.wp.pl/index.html?flg=1" />                                
        <input type="hidden" name="savessl" value="0" />
        <input type="hidden" name="logowaniessl" value="1" />
        <input type="hidden" name="minipoczta" value="0" />
        <input type="hidden" name="tryLogin" value="1" />
        <input type="hidden" name="countTest" value="1" />
</form>
 

Mam nadzieję, że widzisz zależności ;)
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2210
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 206
System operacyjny: Windows 7 Pro
Windows 8.1
Linux Mint 19
Kompilator: Visual Studio 2015 Community
CodeLite (MinGW)
MSYS2 (MinGW, clang)
g++
Gadu Gadu: 0
    Windows XPFirefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez Slynx » wtorek, 25 stycznia 2011, 00:32

Troszkę mnie chyba nie zrozumiałeś. Miałem na myśli to, że nazwy pól login_username i login_password odpowiadają polom KONKRETNIE dla formularza wp. Wiadomo, że przy innych skrzynkach te nazwy mogą być inne.
Bardzo "przejrzyście" ;p to wyjaśniłeś, więc jeśli będzie to działać tak jak myślę, to już we wszystkim powinienem się połapać. Jednak jeszcze jednego nie widzę. Tak jak wspomniałem wcześniej. Może to głupie pytanie, ale chcę się upewnić.
Czy wysłanie tych danych przez POST (oczywiście poprawnych) jest równoznaczne z informacją dla serwera by rozpocząć próbę zalogowania ? Czy może jest to tylko wypełnienie pól formularza, czyli pełne przygotowanie go do poprawnego logowania. Jak widzę, jest tam przekazywane "subm" odpowiadające typowi dla przcisku "zaloguj się", natomiast w przedstawionym przykładzie element jest pusty

&login_password=has%B3o
&subm=
&serwis=nowa_poczta_wp

Samo dodanie tego parametru wewnątrz POST-a powoduje już prośbę o wykonanie logowania po stronie serwera ? :/ Czy może powinien tam być przypisana odpowiednia... metoda ( o ile tak to można nazwać) dla tego typu (submit - button).

To samo odpowiadałoby zaznaczeniu checkBoxa, tylko w ich przypadku jest zwyczajnie wartość Value odpowiadająca stanowi elementu. A jak to jest z tym "buttonem" logowania ?
(Spokojnie, coś czuje, że dochodzimy do końca, więc koniec z głupimi pytaniami;p)
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: HttpWebRequest + Response = logowanie do serwera pocztowego

Nowy postprzez polymorphism » wtorek, 25 stycznia 2011, 11:30

Czy wysłanie tych danych przez POST jest równoznaczne z informacją dla serwera by rozpocząć próbę zalogowania ?

Tak.

(...) natomiast w przedstawionym przykładzie element jest pusty

No, a jaka wartość miałaby tam być? Jak sam zauważyłeś, jest to przycisk, a ten wartości nie posiada.

Samo dodanie tego parametru wewnątrz POST-a powoduje już prośbę o wykonanie logowania po stronie serwera ? Czy może powinien tam być przypisana odpowiednia... metoda ( o ile tak to można nazwać) dla tego typu (submit - button)

2 x Nie.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2210
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 206
System operacyjny: Windows 7 Pro
Windows 8.1
Linux Mint 19
Kompilator: Visual Studio 2015 Community
CodeLite (MinGW)
MSYS2 (MinGW, clang)
g++
Gadu Gadu: 0
    Windows XPFirefox

Następna strona

  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje sieciowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości

cron