Automatisches Navigieren auf Internetseiten
-
flenders schrieb:
Versuche lieber direkt den entsprechenden HTTP_Request zu senden und lass den externen Browser ganz aus dem Spiel
naja, klingt nett aber ich weiß nicht recht wie und was da drinnen stehen muss!? *g*
will auf der seite:
http://www.a1.net/CDA/login/login_user3/0,4421,786-786-1-html-de,00.html
Benutzername: Nike
Passwort: xyz
reinschreiben.....cu
-
Das ist ja ein ganz normales Formular, also musst du einfach direkt den Post-Request hinschicken. Benutze mal die Forensuche - z.B. das hier könnte dir helfen
-
ok, aber kann man nicht einfach in das formular in die eigabefelder was rein schreiben ohne das man post request verwendet, wenn ja wie???
cu nike!
-
Das geht nicht so einfach (wenn überhaupt - dafür müsstest du wohl eher eine Browser-Extension schreiben), denn zumindest im IE sind das keine extra Controls.
-
char passwort[256]={"deinpasswort"}; char benutzerid[256]={"benutzerid"}; size=sprintf( buffer, "POST http://www.klamm.de/partner/start_login.php HTTP/1.0\nAccept-Language: de\nContent-Type: application/x-www-form-urlencoded\nPragma: no-cache\nHost: www.klamm.de\nContent-Length: %d\n\nloginid=%s&passwd=%s\r\n",16+strlen(benutzerid)+strlen(passwort), benutzerid, passwort);
kann mir mal jemand helfen? wohin send ich das passwort da auf wwww.a1.net
dort hin:Host:http://asmp.a1.net/asmp/LoginMasterServlet/uxasms04?userRequestURL=http%253A%252F%252Fasmp.a1.net%252Fportal%252Flogin%253FRefererId%253D786-786-1-html-de&serviceRegistrationURL=&level=1
ich weiß nit ob da zuerst das passwort oder benutzername übertragen wird??? hmmm
cu
-
Die Reihenfolge ist afaik egal - nur die Namen der Formular-Felder musst du eben nachschauen. Wenn aber schon vor dem Login-Formular Sessions verwendet werden wird es schwierig, denn du brauchst eben eine möglichst gleichbleibende URL, an die das Formular versandt wird
-
flenders schrieb:
Die Reihenfolge ist afaik egal - nur die Namen der Formular-Felder musst du eben nachschauen. Wenn aber schon vor dem Login-Formular Sessions verwendet werden wird es schwierig, denn du brauchst eben eine möglichst gleichbleibende URL, an die das Formular versandt wird
Namen der Formular Felder:
UserID
Passworddort wird das hingeschickt:
https://oewassl.a1.net/cgi-bin/ivw-ssl/CP/service/login3das ja jetzt ein problem mit https???
hm???
frage zum example da:
#include <stdio.h> #include <winsock.h> #include <windows.h> #pragma comment(lib, "wsock32.lib") int main() { char Password[256]={"deinpasswort"}; char UserID[256]={"benutzerid"}; int len; len=sprintf( buffer, "POST https://oewassl.a1.net/cgi-bin/ivw-ssl/CP/service/login3 HTTP/1.0\nAccept-Language: de\nContent-Type: application/x-www-form-urlencoded\nPragma: no-cache\nHost: https://oewassl.a1.net\nContent-Length: %d\n\nloginid=%s&passwd=%s\r\n",16+strlen(UserID)+strlen(Password), UserID, Password); send(Socket, buffer, len, 0); return 0; } error: C:\temp\postrequest\main.cpp(12) : error C2065: 'buffer' : undeclared identifier C:\temp\postrequest\main.cpp(13) : error C2065: 'Socket' : undeclared identifier
cu
-
Die Fehler sind klar: buffer musst du erst deklarieren und Speicher reservieren und den Socket öffnen (WSAStartup und dann socket) - siehe: MSDN: send()
Aber wie das mit https abläuft weiß ich auch nicht
-
flenders schrieb:
Die Fehler sind klar: buffer musst du erst deklarieren und Speicher reservieren und den Socket öffnen (WSAStartup und dann socket) - siehe: MSDN: send()
Aber wie das mit https abläuft weiß ich auch nicht#include <stdio.h> #include "winsock2.h" int main() { // Initialize Winsock WSADATA wsaData; int iResult = WSAStartup(MAKEWORD(2,2), &wsaData); if (iResult != NO_ERROR) printf("Error at WSAStartup()\n"); //---------------------- // Create a SOCKET for connecting to server SOCKET ConnectSocket; ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (ConnectSocket == INVALID_SOCKET) { printf("Error at socket(): %ld\n", WSAGetLastError()); WSACleanup(); return 0; } char passwort[256]={"deinpasswort"}; char benutzerid[256]={"benutzerid"}; int len; char buffer[32] = "Client: Sending data."; len=sprintf( buffer, "POST http://www.klamm.de/partner/start_login.php HTTP/1.0\nAccept-Language: de\nContent-Type: application/x-www-form-urlencoded\nPragma: no-cache\nHost: www.klamm.de\nContent-Length: %d\n\nloginid=%s&passwd=%s\r\n",16+strlen(benutzerid)+strlen(passwort), benutzerid, passwort); send(ConnectSocket, buffer, len, 0); return 0; } error: Kompilierung läuft... main.cpp Linker-Vorgang läuft... main.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__send@16 main.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__WSACleanup@0 main.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__WSAGetLastError@0 main.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__socket@12 main.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__WSAStartup@8 Debug/PostRequest.exe : fatal error LNK1120: 5 unaufgeloeste externe Verweise Fehler beim Ausführen von link.exe.
hab das gemacht was du gesagt hast....aber was steht im buffer drinnen??? ka!
warum bekomm ich die errors da?cu
-
nike schrieb:
aber was steht im buffer drinnen??? ka!
Den Buffer füllst du ja mit sprintf - aber mit 32 hast du ihn für das, was du nachher reinschreibst zu klein gemacht!
nike schrieb:
warum bekomm ich die errors da?
Weil du vergessen hast Ws2_32.lib zu linken
-
wenn ich das pragma dazu gebe dann sagt er:
#pragma commment(lib, "Ws2_32.lib") Kompilierung läuft... main.cpp C:\PostRequest\main.cpp(5) : warning C4068: Unbekanntes Pragma Linker-Vorgang läuft... main.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__send@16 main.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__WSACleanup@0 main.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__WSAGetLastError@0 main.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__socket@12 main.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__WSAStartup@8 Debug/PostRequest.exe : fatal error LNK1120: 5 unaufgeloeste externe Verweise Fehler beim Ausführen von link.exe.
???
-
Lass mal bei comment das 3. m weg
-
danke *gg* nit gesehn!!!!;-(
wie kann ich jetzt die antwort des servers ausgeben lassen?
cu
-
Hab sowas noch nie gemacht, aber vielleicht hilft dir dieser Thread
-
Mit der Funktion receive() auf antwort warten. Die funktion receive ist ne sog. 'Blocking function' und returned nicht bis eine antwort über den angegebenen socket kommt.
Mach das in nem separaten Thread oder seh dir die select() function genauer an. Ansonsten bklockierst du dein Programm bis receive returned.Mfg.
-
cout << "Antwort des Servers: \n"; while( bytesRecv == SOCKET_ERROR ) { bytesRecv = recv( ConnectSocket, recvbuf, sizeof(recvbuf), 0 ); cout << buffer; if ( bytesRecv == 0 || bytesRecv == WSAECONNRESET ) { cout << "Connection Closed.\n"; break; } cout << "Bytes Recv: " << bytesRecv; }
irgendwie bekomm ich da keine antwort, kommt nit mal aus der schleife raus;-(
cu
-
int bytesRecv = SOCKET_ERROR;
-
ich bekomm wohl was zurück aber das ist das gleiche was ich schicke...hmmm??????
bekomm das zurück:
POST https://oewassl.a1.net/cgi-bin/ivw-ssl/CP/service/login3 HTTP/1.0
Accept-Language: de
Content-Type: application/x-www-form-urlencoded
Pragma: no-cache
Host: https://oewassl.a1.net
Content-Length: 33loginid=name&passwd=xyz
das kanns ja nit sein???
-
es wird ein servlet aufgerufen hab ich grad rausgefunden und dem werden das passwort+benutzername mitgeteilt...
https://asmp.a1.net/asmp/ProcessLoginServlet/uxasms08/uxasms07
was macht man in diesem fall?? hmm?
cu
-
ich machs nun bissal anders schick einfach gleich die sms per post request...
schaut mal da:
http://www.rafb.net/paste/results/Hscw2T26.htmlwie schaut der post request beim senden einer sms aus???
so:
char msg[256]={"Sers du"}; char an1[256]={"43676"}; char an2[256]={"123456"}; int len; len=sprintf(buffer, "POST http://www.a1.net/sms_check_tr/1,2855,14-813-html-de,00.html HTTP/1.0\nAccept-Language: de\nContent-Type: no-cache, must-revalidate\nPragma: no-cache\nHost: http://www.a1.net\nContent-Length: %d\n\nan1=%s&an2=%s&msg=%s\r\n",16+strlen(an1)+strlen(an2)+strlen(msg), an1, an2, msg);
bitte infos aus der oberen url entnehmen!!!
ich weiß aber nit wie gross ist content-length??? was is content-type?
cu:D