NeoGriever: Die hweb.dll - Was ist das?

Beitrag lesen

Inzwischen habe ich das Problem beheben können. .net unterstützt das nutzen von sogenannten wildcard-Domainangaben nicht, jedoch akzeptiert der Cookie-Typ ein frei definierbaren String als Domain. Habe einfach in meiner hweb.dll (werde gleich darauf eingehen) gesagt, dass die Domain nicht mit einem . beginnen darf. (If domain.Substring(0,1) = "." Then domain = domain.Substring(1)) und schwupp, schon funktioniert alles.

Die hweb.dll, welche ich geschrieben habe, bietet lediglich 6 Funktionen und 3 Klassen an, mit welcher man sehr leicht komplett vorkonfigurierte HttpWebRequests durchführen kann. Inklusive HTTP 1.1 und allem drum und dran.

Die bereitgestellten Klassen:

hweb.HWeb.HRes = Standard-Rückgabe-Typ. Beinhaltet normalen Quelltext, eventuell die Weiterleitungs-URL und einen Cookie-Speicher (Um den gings hier eigentlich), welcher als ein einfacher CookieContainer auftritt.

hweb.HWeb.HResBIN = Rückgabewert für binäre Daten. Anstelle des Quelltextes wird ein Bytearray zurückgegeben. Ansonsten identisch mit hweb.HWeb.HRes.

hweb.HWeb.HResIMG = Rückgabewert ist direkt eine Grafik, welche man dann direkt weiterverarbeiten kann. Ansonsten identisch mit hweb.HWeb.HRes.

hweb.HWeb = Der eigentliche Funktionsanbieter, welcher vohrer mittels New hweb.HWeb() initialisiert werden muss.

Bereitgestellte Funktionen:

[hweb.HWeb].SendGetData( _
     [String] Url, _
     [Optional CookieContainer] cookieCol (Nothing), _
     [Optional String] referer (""), _
     [Optional Boolean] ParseRedirects (False) _
) As hweb.HWeb.Hres

  • Diese Funktion sendet einen HTTB-Web-Request mit den einfachsten angaben. Nutzung:

h.SendGetData("http://www.google.de/").Source
----------------------------------------
[hweb.HWeb].SendPostData( _
     [String] Url, _
     [NameValueCollection] Url, _
     [Optional CookieContainer] cookieCol (Nothing), _
     [Optional String] referer (""), _
     [Optional Boolean] ParseRedirects (False) _
) As hweb.HWeb.Hres

  • Diese Funktion sendet einen HTTB-Web-Request inklusive angegebener Post-dataen und eventuell angegebener Einstellungen. Nutzung:

Dim Post_daten As New System.Collection.Specialized.NameValueCollection()
Post_daten.Add("postdatenname","postdateninhalt")
h.SendPostData("http://www.google.de/",Post_Daten).Source

Die funktionen führen sich dann weiter mit SendGetDataBIN, SendPostDataBIN, welche dann ein hweb.HWeb.HResBIN und SendGetDataIMG und SendPostDataIMG welche ein hweb.HWeb.HResIMG zurückgeben.

Diese sind dann noch mit Events bestückt, welche bei einer Header("Location ...")-Weiterleitung feuern und das, was anstelle von ... steht, zurückgeben. Dazu wird ein Event gefeuert, welches bei einem gefundenen Cookie und bei einem gefundenen Header-Cookie (Der Header "SetCookie" wird standardmäßig nicht von httpWebResponse's geparsed) ausgelöst werden.

Im übrigen. Die hweb.dll ist bei mir schon über 1 1/2 Jahre alt und musste bis jetzt nur 1 mal geändert werden. Und das war gestern. Sonst hat sie immer perfekte Dienste geleistet und das erstellen von automatischen downloadern, auslesen von Webseiten und sogar das einloggen in komplexe Login-Systeme ermöglicht.

Und: Ich weiß, dass sie nicht ganz sauber programmiert ist. Hatte aber bisher nie probleme damit XD

Hier gibts Source (Für SharpDevelop 2.2): http://www.megaupload.com/?d=XHID6EGZ
Und compilierte hweb.dll (.net 2 oder höher): http://www.megaupload.com/?d=QLYR295M