![]() |
MSN -> TWEENER
Liste der Anhänge anzeigen (Anzahl: 1)
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:
der Code des OnConnect-Events
IdTCPClient1.Host := 'nexus.passport.com';
IdTCPClient1.Port := 443; IdTCPClient1.Connect();
Delphi-Quellcode:
der Code des OnWork-Events
IdTCPClient1.Write('GET /rdr/pprdr.asp HTTP/1.0\r\n\r\n');
AWorkMode: wmRead oder wmWrite - erklären brauch ich das nicht ^^ AWorkCount: int, entspricht der Menge der Empfangenen Bytes
Delphi-Quellcode:
hier hab ich das Problem, dass es nicht mal in das OnWork-Event springt - warum weiß ich nicht... :/
if(AWorkMode = wmRead)
{ char *receive = new char[AWorkCount]; IdTCPClient1->ReadBuffer(receive,AWorkCount); } <hr> 2.1 (mit Indy Komponente "HTTP") hier die einfachere Methode
Delphi-Quellcode:
OnWork:
IDHTTP1.Host := 'nexus.passport.com';
IDHTTP1.Port := 443; IDHTTP1.Get('https://nexus.passport.com/rdr/pprdr.asp');
Delphi-Quellcode:
jetzt springt er einmal in das Event, aber hat dort sensationelle NULL (->nil ^^) Bytes zu lesen... :/
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...} } 2.2
Delphi-Quellcode:
-> A ist leer
{Host = '...'; Port = 443;}
String A := IDHTTP1.Get('https://nexus.passport.com/rdr/pprdr.asp'); 2.3
Delphi-Quellcode:
-> A == "200 OK"
{Host = '...'; Port = 443;}
IDHTTP1.Head('https://nexus.passport.com/rdr/pprdr.asp'); String A := IDHTTP1.ResponseText; 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 ^^ |
Re: MSN -> TWEENER
Herzlich willkommen in der DP :thumb:
Zum Thema: Bei der Lösung mittels TCP Client: sollte der Port nicht 80 lauten. Das ist der standard HTTP Port. Was für Fehler kommen eigentlich? Florian |
Re: MSN -> TWEENER
Zitat:
Zitat:
Zitat:
Das ist ja das komische - wenn Fehler kommen würden, dann hätte ich wenigstens ne Chance, zu erkennen, woran es liegt - aber so... :'( Tommy |
Re: MSN -> TWEENER
Zitat:
Ich würde übrigens die Lösung über ein IdHTTP vorziehen. Auch hier mal versuchen als Port 80 zu verwenden. |
Re: MSN -> TWEENER
Delphi-Quellcode:
so meintest du das?
IdHTTP1->Host = "nexus.passport.com";
IdHTTP1->Port = 80; IdHTTP1->Get("https://nexus.passport.com/rdr/pprdr.asp"); Wenn ja: er bleibt bei der letzten Anweisung ewig hängen - das hatte ich davor auch schon irgendwnan mal... Das Prog hat zwar 0% CPU-Auslastung, aber reagiert trotzdem nicht mehr... Es kommt auch nie in ein "OnWork", aber ist verbunden mit dem Host...
Delphi-Quellcode:
so brinter bei dem Connect() nen Fehler, weil er sich nicht einloggen kann... Ist ja auch verständlich, weiL der Port 443 nicht umsonst vorgegeben sein wird...
IdTCPClient1->Host = "nexus.passport.com"; //MSN->Host;
IdTCPClient1->Port = 80; //443; IdTCPClient1->Connect(); Danke trotzdem... Tom |
Re: MSN -> TWEENER
Achso. Sorry ich hab da glaube ich auch was Falsches gesagt. Du stellst ja eine HTTPS und keine HTTP Verbindung her. Dann stimmt der Port natürlich.
Aber kein Wunder, dass A bei der HTTP Lösung leer ist: Ruf mal die angesprochene Seite im Browser auf: ![]() |
Re: MSN -> TWEENER
ja, das hab ich auch schon gemacht und auch schon gesehen, dass die Seite leer ist...
aber ich habe immer das gleiche gelesen, wenn ich mal was dazu gefunden hatte - nämlich jedes mal wieder den gleichen 'Link' Tom |
Re: MSN -> TWEENER
An welche Information willst du denn über den Link gelangen?
|
Re: MSN -> TWEENER
Zitat:
dann wieder das gleiche passiert... hier hat sich auch noch ma jmd die Mühe gemacht, das alles aufzuschreiben: Zitat:
![]() --> es MUSS gehen Tom |
Re: MSN -> TWEENER
Hi Tommmmmmmmmmmmy.
Die erste Variante funktioniert vermutlich nicht, denn '\r\n\r\n' ist in Delphi ein String mit vier Backslashes und r's und n's dazwischen. In C/C++/C#/Java/Perl/Ruby/... ist es aber die Zeichenfolge #13#10#13#10 (#13 = Wagenrücklauf; #10 = Zeilenvorschub) ;-) Also: IdTCPClient1.Write('GET /rdr/pprdr.asp HTTP/1.0'#13#10#13#10); :oops: Ist - das - pein - lich! :oops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz