Hallo,
ich habe aktuell 2 Probleme mit webrequest bzw. hhtpwebrequest. Hintergrund ist das ich mir für verschiene Zwecke Programme geschrieben habe die mir Daten von Internetseiten auslesen bzw aus deren Quelltext. Bisher hatte ich mir den Quelltext mit dem Webbrowser-Steuerelement geholt, was immer problemlos funktionierte.
Nachdem ich hier im Forum irgendwo mal ein Code-Beispiel für so eine Abfrage mittels httpwebrequest gesehen hatte, habe ich das mal damit ausprobiert, zunächst in einem Test-Prgramm was problemlos ging und dann habe ich die Funktion mal ein eines meiner anderen Programme eingebaut. Bei diesem passiert es jetzt, das die komplette Bedienoberfläche einfriert, das Programm selber arbeitet aber anscheinend im Hintergrund (kann ich darn sehen dass ich mir Ergebnisse in einer Datei speichern lasse und diese auch weiter fortgeschrieben wird.
Ein anderes Problem was ich lösen will, ist, wenn eine falsche URL eingegeben wird bzw. ich den HTTP-Status-Code abfangen will. Hatte gesehen das das mit Try und Catch irgendwie funktioniert aber wie das genau aussehen muss habe ich keine Ahnung.
Der von mir bis jetzt verwendete Code:
Die fragen die ich jetzt hätte wären
- muss ich noch irgendwas hinzufügen damit die streams beendet/geschlossen werden? hatte schon mal request.abort und .close eingefügt aber hat sich trotzdem nichts geändert.
- was muss außerdem noch hinzugefügt werden damit ich am Ende der Funktion in einer zusätzlichen Variablen den HHTp Status Code stehen habe? Meine Überlegungen gehen dahin falls die Abfrage nocht erfolgreich war den anstatt den quelltext zurückzugeben.
Danke für eure Hilfe im voraus.
ich habe aktuell 2 Probleme mit webrequest bzw. hhtpwebrequest. Hintergrund ist das ich mir für verschiene Zwecke Programme geschrieben habe die mir Daten von Internetseiten auslesen bzw aus deren Quelltext. Bisher hatte ich mir den Quelltext mit dem Webbrowser-Steuerelement geholt, was immer problemlos funktionierte.
Nachdem ich hier im Forum irgendwo mal ein Code-Beispiel für so eine Abfrage mittels httpwebrequest gesehen hatte, habe ich das mal damit ausprobiert, zunächst in einem Test-Prgramm was problemlos ging und dann habe ich die Funktion mal ein eines meiner anderen Programme eingebaut. Bei diesem passiert es jetzt, das die komplette Bedienoberfläche einfriert, das Programm selber arbeitet aber anscheinend im Hintergrund (kann ich darn sehen dass ich mir Ergebnisse in einer Datei speichern lasse und diese auch weiter fortgeschrieben wird.
Ein anderes Problem was ich lösen will, ist, wenn eine falsche URL eingegeben wird bzw. ich den HTTP-Status-Code abfangen will. Hatte gesehen das das mit Try und Catch irgendwie funktioniert aber wie das genau aussehen muss habe ich keine Ahnung.
Der von mir bis jetzt verwendete Code:
VB.NET-Quellcode
- 'Quelltext einer Webseite auslesen, keine Kontrolle ob Auslesen erfolgreich (HTML-Status-Code 200)
- Public Function Quelltext_auslesen(URL As String) As String
- Dim hReq As HttpWebRequest = DirectCast(HttpWebRequest.Create(URL), HttpWebRequest)
- Dim hRes As HttpWebResponse = DirectCast(hReq.GetResponse(), HttpWebResponse)
- Dim s As Stream = hRes.GetResponseStream()
- Dim sR As New StreamReader(s)
- Dim webPage As String = sR.ReadToEnd()
- sR.Close()
- s.Close()
- sR = Nothing
- s = Nothing
- hReq = Nothing
- hRes = Nothing
- Quelltext_auslesen = webPage
- End Function
Die fragen die ich jetzt hätte wären
- muss ich noch irgendwas hinzufügen damit die streams beendet/geschlossen werden? hatte schon mal request.abort und .close eingefügt aber hat sich trotzdem nichts geändert.
- was muss außerdem noch hinzugefügt werden damit ich am Ende der Funktion in einer zusätzlichen Variablen den HHTp Status Code stehen habe? Meine Überlegungen gehen dahin falls die Abfrage nocht erfolgreich war den anstatt den quelltext zurückzugeben.
Danke für eure Hilfe im voraus.