Thema: C++ MSN -> TWEENER

Einzelnen Beitrag anzeigen

Tommy

Registriert seit: 14. Jun 2006
Ort: chemnitz
20 Beiträge
 
#1

MSN -> TWEENER

  Alt 14. Jun 2006, 19:38
zu erst das:
Ich nutze C++ (bcb 5), deshalb kann es sein, dass ich ein paar Synthaxfehler drinne habe, weil ich es nur jz kurz auf Delphi umändere - weil es ja ca. 0 C++ Foren gibt, wo man auch ma innerhalb von nen paar Jahren ne Antwort erhält...

ZUM eigtl Thema:
zwar ist das nicht der erste Schritt der Anmeldung @msn, aber der einzig interessante für mich, weil der Rest geht:

"Once you have done this you should open a connection with nexus.passport.com, on port 443. [...] After the connection has been established you should send a simple GET request to the server."
--> "GET /rdr/pprdr.asp HTTP/1.0\r\n\r\n"

so - jz gibt es ja verschiedene Möglichkeiten, das anzustellen:

1. (mit Indy Komponente "TCPClient", verlinkt unter Intercept mit "IdConnectionInterceptOpenSSL1")
Delphi-Quellcode:
   IdTCPClient1.Host := 'nexus.passport.com';
   IdTCPClient1.Port := 443;
   IdTCPClient1.Connect();
der Code des OnConnect-Events
 IdTCPClient1.Write('GET /rdr/pprdr.asp HTTP/1.0\r\n\r\n'); der Code des OnWork-Events
AWorkMode: wmRead oder wmWrite - erklären brauch ich das nicht ^^
AWorkCount: int, entspricht der Menge der Empfangenen Bytes
Delphi-Quellcode:
 if(AWorkMode = wmRead)
  {
  char *receive = new char[AWorkCount];
  IdTCPClient1->ReadBuffer(receive,AWorkCount);
  }
hier hab ich das Problem, dass es nicht mal in das OnWork-Event springt - warum weiß ich nicht... :/
<hr>
2.1 (mit Indy Komponente "HTTP")
hier die einfachere Methode
Delphi-Quellcode:
   IDHTTP1.Host := 'nexus.passport.com';
   IDHTTP1.Port := 443;
   IDHTTP1.Get('https://nexus.passport.com/rdr/pprdr.asp');
OnWork:
Delphi-Quellcode:
   if(AWorkMode = wmRead)
    {
    char *receive = new char[AWorkCount];
    IDHTTP1->ReadBuffer(receive,AWorkCount);
{sry für C++ - Synthax - er erstellt nen Buffer und lässt den halt füllen...}

    }
jetzt springt er einmal in das Event, aber hat dort sensationelle NULL (->nil ^^) Bytes zu lesen... :/

2.2
Delphi-Quellcode:
   {Host = '...'; Port = 443;}
   String A := IDHTTP1.Get('https://nexus.passport.com/rdr/pprdr.asp');
-> A ist leer

2.3
Delphi-Quellcode:
   {Host = '...'; Port = 443;}
   IDHTTP1.Head('https://nexus.passport.com/rdr/pprdr.asp');
   String A := IDHTTP1.ResponseText;
-> A == "200 OK"

Meine erste Frage: benutze ich überhaupt die richtigen Komponenten? Und wenn ja, was mach ich falsch? Meiner Meinung nach müssten alle 3 Methoden gehen


Danke,

Tom

PS: Anbei die Anleitung zum MSNP8 Protokoll - zumindest grob ^^
Angehängte Dateien
Dateityp: doc logging_in_with_ssl_on_msnp8_183.doc (48,0 KB, 9x aufgerufen)
C++ != D

  Mit Zitat antworten Zitat