Entwickler-Ecke

Internet / Netzwerk - Automatische Weiterleitung - IdHTTP


the-kecks - Di 21.07.09 18:58
Titel: Automatische Weiterleitung - IdHTTP
hi,
hab da mal wieder ein problem^^ ich möchte mich bei ebay einloggen (ja, es gibt eine API. nein, ich werde sie nicht benutzen). das klappt auch schon soweit (kriege alle notwendigen cookies).

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
...
        Params.Add('MfcISAPICommand=SignInWelcome');
        Params.text:=Params.text + 'a1%3Dna~a2%3Dna~a3%3Dna~a4%3DMozilla~a5%3D' + 'Netscape~a6%3D5.0%20(Windows%3B%20de)~a7%3D20090715~a8%3Dna~a9%3Dtrue~a10%3DWindows%20NT%206.0~a11%3Dtrue~a12%3DWin32~a13%3Dn' + 'a~a14%3DMozilla%2F5.0%20(Windows%3B%20U%3B%20Windows%20NT%206.0%3B%20de%3B%20rv%3A1.9.1.1)%20Gecko%2F20090715%20' + 'Firefox%2F3.5.1~a15%3Dtrue~a16%3Dde~a17%3Dna~a18%3Dsignin.ebay.de~a19%3Dna~a20%3Dna~a21%3Dna~a22%3Dna~a23%3D1680~a24%3D10' + '50~a25%3D32~a26%3D1020~a27%3Dna~a28%3DTue%20Jul%2021%202009%2017%3A04%3A13%20GMT%2B0200~a29%3D2~a30%3Ddef%7Cqt6%7Cqt5%7Cqt4%7Cqt3%7Cqt2%7Cqt1%7Cpdf' + '%7Cmso%7Cswf%7C~a31%3Dyes~a32%3Dna~a33%3Dna~a34%3Dno~a35%3Dno~a36%3Dyes~a37%3Dno~a38%3Donline~a39%3Dno~a40%3DWindows%20NT%206.0~a41%3Dno~a42%3Dno~a43%3D';  //musste den string in mehrere substrings aufteilen, da er du lang war
        Params.Add('inputversion=2');
        Params.Add('lse=true');
        Params.Add('lsv=10.0.22');
        Params.Add('mid=AQAAASJINcJdAAUxMjI2NGMwNGJiNy5hMDkwYjczLjc4MjA3LmZmZmZhNjNhADiP0v8hOAsKF2E%2BWA38MVbzj8k*');
        Params.Add('kgver=1');
        Params.Add('kgupg=1');
        Params.Add('kgstate=r');
        Params.Add('omid=');
        Params.Add('hmid=AQAAASJINcJdAAU2NGMwNTU4ZjEyMjBhMDZjMjE2MDVmYzBmZmU1Y2I0YiwwLC0x82UUzbPa7XWixDDVYkW%2Fdqn1cns*');
        Params.Add('siteid=77');
        Params.Add('co_partnerId=2');
        Params.Add('UsingSSL=1');
        Params.Add('ru=');
        Params.Add('pp=');
        Params.Add('pa1=');
        Params.Add('pa2=');
        Params.Add('pa3=');
        Params.Add('i1=-1');
        Params.Add('pageType=-1');
        Params.Add('rtmData=A01=AEABtISBEAAAAAAAQCIEqv9sAMSIs7yMvkojwiPBJ+Qk5LBL/CRiBo4HQSSAKlGksJg4JAK;M01=AIAAHKAIAAMoQBBgAQcABGEYQAkAG;TC01=QEguYX3pIBAAAQQLiUABAAAAAAAkACECVAA/2zSoAjECAC2dZAAMzLJg0RYJUfCSA5DRGAyXCWAEnfhIAJGgCY/ASAlEgC4SDSAtJgIAJnAoAG;PS=T.0');
        Params.Add('userid=' + Memo1.Lines[i]);
        Params.Add('pass=' + Memo2.Lines[i]);
        HTMLCode:=IdHTTP1.Get('https://signin.ebay.de/ws/eBayISAPI.dll?co_partnerid=2&siteid=77&UsingSSL=1');
        Params.Add('kgct=' + readout(HTMLCode, '</table><input type="Hidden" name="kgct" value="''"></td>'));

         IdHTTP1.Request.Referer := 'https://signin.ebay.de/ws/eBayISAPI.dll?SignIn';
         IdHTTP1.Request.Host := 'signin.ebay.de';
         IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';

         HTMLCode:=IdHTTP1.Post('https://signin.ebay.de/ws/eBayISAPI.dll?co_partnerid=2&siteid=77&UsingSSL=1', Params);

         IdHTTP1.Request.Referer := '';
         IdHTTP1.Request.Host := '';
         IdHTTP1.Request.ContentType := '';

einstellungen:
IdHTTP:
-cookiemanager
-IOHandler: IdSSLIOHandlerSocketOpenSSL1
-handleredicts: true
-allowcookies: true

IdSSLIOHandlerSocketOpenSSL:
-Port 443
-Method: SSL v3
-Mode: Client

nur leider kriege ich statt der gewünschten account überblick seite nur diese:
Zitat:

<html>
<head>
<!--eBay V3- msxml 4.0 XXXXXXXXXXXXXXXXXXXXXXXXXX-->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><!--srcId: SignInAlertSupressor-->
<title>eBay Deutschland</title>
</head>
<body bgcolor="#ffffff">
<form name="AlertSuppressor" method="POST"><input name="hidUrl" type="hidden" value="http://my.ebay.de/ws/eBayISAPI.dll?MyeBay"></form><script language="JavaScript">window.location.replace(document.AlertSuppressor.hidUrl.value);
</script><noscript>
<meta http-equiv="Refresh" content="0; url = http://my.ebay.de/ws/eBayISAPI.dll?MyeBay">
</noscript><div class="pagewidth"><div class="pageminwidth"><div class="pagelayout"><div class="pagecontainer"><!-- Begin eBay Header --><!--2009-07-03 05:33:48,,, um.rundkoi355,RhasErr ,RcmdId SignInWelcome,RlogId p4plaijkoiwi%3C%3Dpo%2Bpplaijk670-1229e2b4657--><link rel="stylesheet" type="text/css" href="https://secureinclude.ebaystatic.com/v4css/de_DE/e623i/GH_YODA1_SignInEbay_e623i9600654_de_DE_s.css"><!--cacheStatus: true--><script>var _GlobalNavHeaderUtf8Encoding=true;</script><script src="https://secureinclude.ebaystatic.com/v4js/de_DE/e623i/SYS_YODA_vjo_e623i9600652_1_de_DE.js"></script><script src="https://secureinclude.ebaystatic.com/v4js/de_DE/e623i/GH_YODA1_SignInEbay_e623i9600652_1_de_DE.js"></script><span class="ebay"><div id="gnheader" class="gbhdr"><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td><!-- headerType=MIN:SECURE--><img src="https://rover.ebay.com/roversync/?site=77&amp;stg=1&amp;mpt=1248194152023" alt="" width="1" height="1"><script type="text/javascript">var svrGMT = 1248194152023;</script><div id="cobrandHeader"></div><div id="dynamicmenu-hdrCtr" class="hdrCtr"><table border="0" cellpadding="0" cellspacing="0" width="100%" class="logobar"><tr><td width="1%" valign="bottom" class="logoimg"><a href="http://www.ebay.de" rel="nofollow"><img src="https://securepics.ebaystatic.com/aw/pics/de/logos/logoEbay_x45.gif" alt="Von Sammlerstücken bis Autos, bei eBay gibt es alles" border="0"></img></a></td><td valign="bottom" width="50%"></td></tr></table><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td class="brnd1"></td><td class="brnd2"></td><td class="brnd3"></td><td class="brnd4"></td><td class="brnd5"></td><td class="brnd6"></td><td class="brnd7"></td></tr><tr><td class="brnd8"></td><td class="brnd8"></td><td class="brnd8"></td><td class="brnd8"></td><td class="brnd8"></td><td class="brnd8"></td><td class="brnd8"></td></tr></table></div><script type="text/javascript">var includeHost="https://secureinclude.ebaystatic.com/";</script><script src="https://secureinclude.ebaystatic.com/js/e623/de/features/signin/signin_base_e6231de.js"></script><link rel="stylesheet" type="text/css" href="https://secureinclude.ebaystatic.com/css/e623/de/legacy/ebay-ns_e6231de.css"><div></div><div style="display:none;" id="dynMenuCtr"><table cellpadding="0" cellspacing="0" border="0"><tr><td colspan="3" class="dynmenubrdr">##1##</td></tr><tr><td><img src="https://securepics.ebaystatic.com/aw/pics/motors2/images/imgCrnrO4.gif" height="6" width="6" border="0" class="crnrimg"></td><td class="dynmenubtmbrdr">##2##</td><td><img src="https://securepics.ebaystatic.com/aw/pics/motors2/images/imgCrnrO3.gif" height="6" width="6" border="0" class="crnrimg"></td></tr></table></div></td></tr></table></div></span><!--@sghp@ headerStyle=MIN:SECURE: @eghp@--><!-- End eBay Header --><table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td><img src="https://securepics.ebaystatic.com/aw/pics/s.gif" height="20"></td>
</tr>
<tr>
<td colspan="2" bgcolor="#9999cc"><img src="https://securepics.ebaystatic.com/aw/pics/s.gif" width="1" height="2"></td>
</tr>
<tr bgcolor="#d6dcfe">
<td width="25"><img src="https://securepics.ebaystatic.com/aw/pics/sitewide/leftLine_16x3.gif" width="16" height="3" align="middle" alt=" " title=""><img src="https://securepics.ebaystatic.com/aw/pics/s.gif" height="2"></td>
<td valign="middle">
<table border="0" width="100%" cellpadding="0" cellspacing="0">
<tr>
<td nowrap valign="middle" class="sectiontitle"><b>Einloggen</b></td>
<td align="right" nowrap><a href="http://pages.ebay.de/help/new/contextual/signin.html" target="helpwin" onclick="return openContextualHelpWindow(this.href);">Hilfe</a><img src="https://securepics.ebaystatic.com/aw/pics/s.gif" width="20" height="1"></td>
</tr>
</table><img src="https://securepics.ebaystatic.com/aw/pics/s.gif" height="2"></td>
</tr>
<tr>
<td colspan="2" bgcolor="#9999cc"><img src="https://securepics.ebaystatic.com/aw/pics/s.gif" width="1" height="2"></td>
</tr>
<tr>
<td><img src="https://securepics.ebaystatic.com/aw/pics/s.gif" height="20"></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="100%" border="0">
<tr>
<td>Wenn Sie diese Seite sehen, bedeutet das, dass Ihre Browsereinstellungen die automatische Umleitung zu einer neuen URL verhindern.</td>
</tr>
<tr>
<td height="15"><img src="https://securepics.ebaystatic.com/aw/pics/s.gif"></td>
</tr>
<tr>
<td>Klicken Sie bitte <a href="http://my.ebay.de/ws/eBayISAPI.dll?MyeBay">hier</a>, um fortzufahren.</td>
</tr>
<tr>
<td height="15"><img src="https://securepics.ebaystatic.com/aw/pics/s.gif"></td>
</tr>
<tr>
<td bgcolor="#9999cc"><img src="https://securepics.ebaystatic.com/aw/pics/s.gif" height="2"></td>
</tr>
</table>
</body>
</html>

wie man sehen kann verhindert IdHTTP die weiterleitung zu einer neuen URL.
Meine frage nun: wie kann ich es schaffen, dass IdHTTP automatische Weiterleitung unterstützt?
PS: try - except strukturen sind in meinem programm vorhanden, habe sie nur nicht in den code riengenommen, weil ebay nur eine der seiten ist, wo sich mein programm einloggen kann

mfg


BenBE - Di 21.07.09 19:21

idHTTP arbeitet vollkommen korrekt, da die Weiterleitung nicht auf Protokoll-Ebene, sondern via HTML oder JS gemacht wird.

Werte im Antwort-Quelltext einfach den META-Refresh-Tag aus (einfachste Variante) undd rufe diese Seite dann einfach auf. Für Skript-Only-Weiterleitungen musst Du das JavaScript analysieren und emulieren, was durchaus etwas komplizierter werden könnte.


the-kecks - Di 21.07.09 19:26

Zitat:

<td>Klicken Sie bitte <a href="http://my.ebay.de/ws/eBayISAPI.dll?MyeBay">hier</a>, um fortzufahren.</td>

meinst du das? hab schon nach IdHTTP1.Post() ein HTMLCode:=IdHTTP1.Get('http://my.ebay.de/ws/eBayISAPI.dll?MyeBay'); eingefügt, kriege weiterhin die Weiterleitungsseite :(

mfg


BenBE - Di 21.07.09 22:31

Wer Lesen kann, ist klar im Vorteil ...


XML-Daten
1:
<meta http-equiv="Refresh" content="0; url = http://my.ebay.de/ws/eBayISAPI.dll?MyeBay">                    


Beim Aufruf der Seite beachten, dass Du ggf. vorhandene Cookies und Referrer-Angaben mitsendest, sonst geht's garantiert nicht ...


the-kecks - Mi 22.07.09 00:03

ok es klappt jetzt. Danke!

mfg