|
You last visited: Today at 16:11
Advertisement
[autoit] winhttp darkorbit login need help
Discussion on [autoit] winhttp darkorbit login need help within the AutoIt forum part of the Coders Den category.
01/12/2016, 19:01
|
#1
|
elite*gold: 0
Join Date: Dec 2013
Posts: 47
Received Thanks: 9
|
[autoit] winhttp darkorbit login need help
Hallo alle Zusammen,
Brauche hilfe für winhttp darkorbit login, ich komme einfach nicht weiter sind zu viele token.
http header Darkorbit login page html: alles nur zum runterladen da zu lang
Meine test code:
Code:
#include <WinHttp.au3>
#include <string.au3>
$user = "testacc88"
$pass = "1234"
$server ="es3"
; User name un pasword sin von einen test account, macht euch keine hoffnung :P
$hSession = _WinHttpOpen("Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0") ;<====Opens a connection
$hConnect = _WinHttpConnect($hSession, $server & ".darkorbit.bigpoint.com")
$sHtml = _WinHttpSimpleRequest($hConnect, "GET", "")
FileWrite("login1.html",$sHtml)
$aReturn = _StringBetween($sHtml, 'action="https://auth3.bpsecure.com/Sas/Authentication/Bigpoint?authUser=22&token=', '">')
FileWrite("token1.txt",$aReturn[0])
;MsgBox(0,"test",$aReturn[0],0)
$login = "&username=" & $user & "&password=" & $pass
$hConnect = _WinHttpConnect($hSession, "auth3.bpsecure.com")
$sHtml = _WinHttpSimpleRequest($hConnect, "POST", "/Sas/Authentication/Bigpoint?authUser=22&token=" & $aReturn, $server & ".darkorbit.bigpoint.com", $login) ;<===Start Login in DO
FileWrite("login2.html",$sHtml)
das ganze zum herunterladen:
das problem ich bekomme von de seite nur ein 304 error zuruck, was daran liegt wird das ich das ganze falsch mache. Habe kein plan wie ich das weiter machen soll
kann mir wer helfen
|
|
|
01/12/2016, 19:21
|
#2
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Quote:
Originally Posted by loop88
sind zu viele token. 
|
einer xD
Ich glaube du gehst da falsch ran^^
Benutz mal fiddler und log dich ein. Dann dürfte dir auffallen was du machen musst.
PS: Der post link steht in der login form. Du musst aber noch ein paar zeichen durch andere ersetzen(welche nicht in einer url erlaubt sind)
In fiddler kannst du dir anschauen wie der browser der link umgewandelt hat
|
|
|
01/12/2016, 19:32
|
#3
|
elite*gold: 0
Join Date: Dec 2013
Posts: 47
Received Thanks: 9
|
Quote:
Originally Posted by »FlutterShy™
einer xD
Ich glaube du gehst da falsch ran^^
Benutz mal fiddler und log dich ein. Dann dürfte dir auffallen was du machen musst.
PS: Der post link steht in der login form. Du musst aber noch ein paar zeichen durch andere ersetzen(welche nicht in einer url erlaubt sind)
In fiddler kannst du dir anschauen wie der browser der link umgewandelt hat
|
danke erstmal für die schnelle antwort, ich mach mal das
|
|
|
01/12/2016, 21:26
|
#4
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
ich gebe dir einen tipp:
<form name="bgcdw_login_form" method="post" class="bgcdw_login_form" action="  ">
an den link die login daten posten. in dem link aber erst alle ; durch & ersetzen.
wenn in der http udf auto redirect unterstützt wird kommst du sogar direkt auf die index seite
|
|
|
01/12/2016, 22:01
|
#5
|
elite*gold: 0
Join Date: Dec 2013
Posts: 47
Received Thanks: 9
|
Quote:
Originally Posted by »FlutterShy™
ich gebe dir einen tipp:
<form name="bgcdw_login_form" method="post" class="bgcdw_login_form" action="  ">
an den link die login daten posten. in dem link aber erst alle ; durch & ersetzen.
wenn in der http udf auto redirect unterstützt wird kommst du sogar direkt auf die index seite
|
mmm... danke
jetzt komm schon mal was anderes "BP start seite"
Code:
#include <WinHttp.au3>
#include <string.au3>
$user = "testacc88"
$pass = "1234"
$server ="es3"
$hSession = _WinHttpOpen("Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0") ;<====Opens a connection
$hConnect = _WinHttpConnect($hSession, "darkorbit.es")
$sHtml = _WinHttpSimpleRequest($hConnect, "GET", "")
FileWrite("login1.html",$sHtml)
;$aReturn = _StringBetween($sHtml, 'action="https://auth3.bpsecure.com/Sas/Authentication/Bigpoint?authUser=22&token=', '">')
$aReturn = StringRegExp($sHtml,'22&token=(.*)">',3)
FileWrite("token1.txt",$aReturn[0])
MsgBox(0,"Token",$aReturn[0],0)
;$login = "&username=" & $user & "&password=" & $pass
$hConnect = _WinHttpConnect($hSession, $server & "auth3.bpsecure.com")
$sHtml = _WinHttpSimpleRequest($hConnect, "POST", "Sas/Authentication/Bigpoint?authUser=22&token=" & $aReturn, $server & "", "&username=testacc88&password=1234") ;<===Start Login in DO
FileWrite("login2.html",$sHtml)
|
|
|
01/12/2016, 22:36
|
#6
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
ich bin leider nicht mehr so gut in autoit da ich nur noch c# benutze.
in c# mache ich das ungefähr so:
Code:
this.http = new HttpRequest("http://www.darkorbit.com/");
string loginUrl = HttpToolbox.StringBetweenSimple(this.http.HtmlSourceCode, "class=\"bgcdw_login_form\" action=\"", "\"").Replace(';', '&');
this.http.Post(loginUrl, "username=" + HttpToolbox.URLEncode(username) + "&password=" + HttpToolbox.URLEncode(password));
if (!this.http.HtmlSourceCode.Contains("/indexInternal.es?action=externalLogout"))
{
//nicht eingeloggt
}
da ist aber dann meine Http klasse die man nicht genau so in autoit hat & autoredirect ist an. kann sein das da ohne autoredirect noch ein paar requests kommen die du in autoit nachbauen musst.
EDIT:
Das StringBetweenSimple ist equivalent zu _StringBetween(parameter)[0]
|
|
|
01/13/2016, 01:11
|
#7
|
elite*gold: 0
Join Date: Dec 2013
Posts: 47
Received Thanks: 9
|
Quote:
Originally Posted by »FlutterShy™
ich bin leider nicht mehr so gut in autoit da ich nur noch c# benutze.
in c# mache ich das ungefähr so:
Code:
this.http = new HttpRequest("http://www.darkorbit.com/");
string loginUrl = HttpToolbox.StringBetweenSimple(this.http.HtmlSourceCode, "class=\"bgcdw_login_form\" action=\"", "\"").Replace(';', '&');
this.http.Post(loginUrl, "username=" + HttpToolbox.URLEncode(username) + "&password=" + HttpToolbox.URLEncode(password));
if (!this.http.HtmlSourceCode.Contains("/indexInternal.es?action=externalLogout"))
{
//nicht eingeloggt
}
da ist aber dann meine Http klasse die man nicht genau so in autoit hat & autoredirect ist an. kann sein das da ohne autoredirect noch ein paar requests kommen die du in autoit nachbauen musst.
EDIT:
Das StringBetweenSimple ist equivalent zu _StringBetween(parameter)[0]
|
Danke für alles ich glaube ich werde den browser in C# machen  wollte schon lange mal da mit anfangen, autoit ist cool aber mal sehen wie ich mit C# klar komme
|
|
|
01/13/2016, 01:30
|
#8
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
arbeite dich da aber erstmal ein. auch wenn der code einfach aussieht, hinter jeder dieser klassen die ich benutze steckt noch einiges an code.
Du musst dir auch im klaren sein das es in c# nicht von vorneherein so viele funktionen gibt die etwas automatisieren.
|
|
|
01/13/2016, 01:44
|
#9
|
elite*gold: 0
Join Date: Dec 2013
Posts: 47
Received Thanks: 9
|
Das klingt nach einer herausforderung fur mich, wie immer step by step
|
|
|
All times are GMT +1. The time now is 16:13.
|
|