maximale Länge URL in InternetOpenUrl()
-
Hallo,
ich lade eine Seite mit InternetOpenUrl() in meinem Programm herunter.
Nun ist der URL sehr lang und bei irgendeiner Länge von URL funktioniert InternetOpenUrl() nicht mehr und es tritt ein Fehler auf -> return value != 0.
Wenn ich dann auf meinem Webserver schaue, kam kein request an, arbeitet also InternetOpenUrl() nur bis zu einer bestimmten URL Länge ?
[msdn]internetopenurl[/msdn] ( http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wininet/wininet/internetopenurl.asp )
// Edit:
Ab einer Stringlänge von 2048 geht es nicht mehrDanke,
Tim
-
Bei einem Fehler würde doch nicht != 0, sondern NULL zurückgeliefert Ggf.: Was sagt GetLastError?
-
MSDN schrieb:
Returns a valid handle to the FTP, Gopher, or HTTP URL if the connection is successfully established, or NULL if the connection fails.
also, laut:
INT WINAPI ShowErrorMsg(DWORD dwLastError) { UINT iResult; LPVOID szLastError; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dwLastError, 0, (LPTSTR)&szLastError, 0, NULL); iResult = MessageBox(NULL, (char*)szLastError, "Error:", MB_OK | MB_ICONWARNING); return iResult; } ShowErrorMsg(GetLastError());
ist das Handle ungültig
?¿?
Danke,
Tim
-
Pack mal BEVOR InternetOpenUrl()
SetLastError(ERROR_SUCCESS);
und frag dann NACH InternetOpenUrl() nochmal mit GetLast Error ab...
-
passiert das gleiche
Tim
-
-
hm... und wie löse ich das jetzt ?
Tim
-
URLs dürfen afaik eh nicht länger sein
-
flenders schrieb:
URLs dürfen afaik eh nicht länger sein
??? wer sagt das denn bitte ?
Tim
-
Hast du das oben nich gelesen, der IE unterstützt max. ca 2000 Zeichen. Längere URLs kann er nicht verarbeiten und sind damit ungültig
-
ja, ok, aber es gehen mehr zeichen... das habe ich schon getestet, nur irgendwie hat die funktion ein problem mit so vielen Zeichen -> wie kann ich das umgehen ???
Tim
-
Schreib mir die URL mal auf die mehr als 2000 Zeichen hat !!!
-
Nicht unter Windows, das steht doch in dem von flenders verlinktem KnowledgeBase-Artikel...
-
URLs sind aber im Normalfall so das sie von den gängigen Systemen angezeigt werden können (inkl. IE). Ist die Ardresse vom Provider so lang, oder wie darf man das Verstehen.
Oder willst du irgendeine GET Abfrage machen???
-
ne, im url sind noch parameter drin (texte)... und wenn der viel eingibt, dann pech
Tim
-
Dann musst du POST benutzten da gibt es keine Zeichenbegrenzung.
-
ok, und wie benutz ich das ?
Tim
-
-
hm... ich würde ja schon bei der methode bleiben und nicht vollkommen auf sockets umsteigen -> hat ms da nicht sone funktion in der winapi ??
Tim
-
Wenn ich das richtig sehe kannst du das auch einfach über den lpszHeaders von InternetOpenUrl bzw. HttpSendRequest machen