Hallo,
ich habe eine Frage zu der ich zwar schon diverse Beiträge hier gefunden habe aber nicht weiterkomme. Und zwar habe ich diverse Programme wo ich widerholt bestimmte Daten verschiedener Internetseiten abfrage. Bei beiden Programmen kommt es früher oder später zum Absturz. Da ich eines auch mal im Debugger habe laufen lassen konnte ich das WebResponse anschauen und vermute deswegen, das man den Fehler abfangen könnte wenn man den HTTP Status Code abfragt. Bei dem Prgorammabsturz im Debugger konnte ich feststellen das dieser nicht 200 sondern in diesem Fall 500 war.
Da es nicht an einer fehlerhaften URL liegt vermute ich eher das der Server bzw die Seite in diesem einen Fall (1 von mehreren hundert) einfach nicht schnell genug geantwortet hat. Deswegen will ich die Funktion so abwandeln, das in dem fall wenn der Status Code nicht 200 ist einfach die Abfrage nochmal ausführt. Ich habe die bisherigre Funktion schon um Try Catch erweitert wie ich es hier gefunden habe.
Das Problem ist jetzt in welcher Eigenschaft der Webexception der Staus Code (wenn überhaupt) verborgen ist oder wie man das Webexception sonst nutzen könnte um einen nicht korrekte Antwort zu identifizieren. Dann würde ich das einfach mit if abfragen und um die ganze Funkion eine Schleife machen die einfach im Falle eines Fehlers alles nochmal ausführt.
Danke im voraus
ich habe eine Frage zu der ich zwar schon diverse Beiträge hier gefunden habe aber nicht weiterkomme. Und zwar habe ich diverse Programme wo ich widerholt bestimmte Daten verschiedener Internetseiten abfrage. Bei beiden Programmen kommt es früher oder später zum Absturz. Da ich eines auch mal im Debugger habe laufen lassen konnte ich das WebResponse anschauen und vermute deswegen, das man den Fehler abfangen könnte wenn man den HTTP Status Code abfragt. Bei dem Prgorammabsturz im Debugger konnte ich feststellen das dieser nicht 200 sondern in diesem Fall 500 war.
Da es nicht an einer fehlerhaften URL liegt vermute ich eher das der Server bzw die Seite in diesem einen Fall (1 von mehreren hundert) einfach nicht schnell genug geantwortet hat. Deswegen will ich die Funktion so abwandeln, das in dem fall wenn der Status Code nicht 200 ist einfach die Abfrage nochmal ausführt. Ich habe die bisherigre Funktion schon um Try Catch erweitert wie ich es hier gefunden habe.
VB.NET-Quellcode
- Public Function APIAbfrage(URL As String) As String
- Dim hReq As HttpWebRequest = DirectCast(HttpWebRequest.Create(URL), HttpWebRequest)
- Dim hRes As HttpWebResponse
- Try
- hReq = DirectCast(HttpWebRequest.Create(URL), HttpWebRequest)
- hRes = DirectCast(hReq.GetResponse(), HttpWebResponse)
- Catch ex As WebException
- ex.???? 'wo kann ich hier einen HTTP StausCode abfragen
- End Try
- 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
- APIAbfrage = webPage
- End Function
Das Problem ist jetzt in welcher Eigenschaft der Webexception der Staus Code (wenn überhaupt) verborgen ist oder wie man das Webexception sonst nutzen könnte um einen nicht korrekte Antwort zu identifizieren. Dann würde ich das einfach mit if abfragen und um die ganze Funkion eine Schleife machen die einfach im Falle eines Fehlers alles nochmal ausführt.
Danke im voraus