HttpWebResponse (Bestimmte anzahl von Bytes Empfangen)

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Treves.

    HttpWebResponse (Bestimmte anzahl von Bytes Empfangen)

    Hallo Liebe VB-Paradise Community...

    Ich bin seit gestern verzweifelt auf der suche nach einer Lösung meines Problems und dachte ich wende mich jetzt mal an euch :whistling:
    Eins vorweg... Ich lese lieber 10 Tutorials bevor ich 1x Frage... Eventuell hab ich die Lösung schon gesehen gehabt aber vor lauter Bäume den Wald nicht mehr gesehen :S


    Mein momentanes "Projekt" filtert aus dem Quelltext zweier Webseiten (Eigentlich 2x die selbe Webseite, nur in 2 verschiedenen Sprachen) fast zeitgleich eine bestimmte Passage und überträgt diese 2 Sprachlich verschiedenen Passagen, in eine Datenbank.

    Das ganze funktioniert eigentlich auch ziemlich Perfekt.

    Einziges Problem: Es Lahmt ein wenig da mein Programm den kompletten Quelltext mittels HttpWebResponse läd/empängt.

    Ich weiß das meine benötigte Daten im Quelltext IMMER in "zeile 7" bzw. innerhalb der ersten 315 Bytes (UNICODE 630 Bytes) liegen.

    Gibt es eine Möglichkeit nur eine bestimmte anzahl von Bytes mit HttpWebResponse zu empfangen ?

    Wie geht man da genau vor ?


    MfG
    Treves
    Hey,

    Du kannst meines Wissens im Request-Header ein Range-Argument übergeben. Das muss der Server aber unterstützen. Um das rauszufinden, schau Dir am Besten mal die ResponseHeader an, da sollte dann ggf. ein Accept-Ranges: bytes angegeben sein. Ob das auch bei HTML-Dateien dann so funktioniert, wie mit anderen Files, musst Du selber rausfinden. Sollte jetzt nur mal ein Punkt sein, den man sich anguggn kann.

    Alternativ kannst Du den Request auch manuell, mit Hilfe eines Sockets absetzen. Dann hast Du die Kontrolle über das und wieviel Du empfangen möchtest. Aber dies auch unter Vorbehalt, da ich selten mit WebServern in dieser Form zu tun habe.

    In vielen Fällen hilft auch das Setzen der Proxy-Property auf Nothing schon weiter. Ich kann mir nicht vorstellen, dass das Herunterladen einer Webseite "lahmt".

    VB.NET-Quellcode

    1. Dim hReq As HttpWebRequest = DirectCast(HttpWebRequest.Create("url"), HttpWebRequest)
    2. hReq.Proxy = Nothing


    Alternativ evtl. mal den WebClient benutzen. Hier darauf achten, dass Du die Async-Methoden nutzt.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Vielen Dank für die Information / Erklärung.

    SpaceyX schrieb:

    Ich kann mir nicht vorstellen, dass das Herunterladen einer Webseite "lahmt"

    Nunja... Wenn ein Ausländischer Server Lahmt, ist es Hilfreicher nur einen bestimmten teil des Quelltextes (z.b: 500 Bytes), anstatt ihn komplett zu laden.

    Hab es aber nun hinbekommen mittels:

    VB.NET-Quellcode

    1. request.AddRange(0, 500)


    Danke nochmals :thumbsup: