21. oktober 2003 - 10:23Der er
10 kommentarer og 1 løsning
håndtere fejl med System.Net.WebClient
Jeg bruger denne function til at hente hjemmesider med. Men hvad hvis webadressen ikke kan findes, eller der er en anden fejl? Kan det ikke laves således at den retunerer en fejl i stedet for at programmet går i stå, og hvordan??
Public Function GetPageHTTP(ByVal URL As String) As String
Dim wc As New System.Net.WebClient() wc.Headers.Add("User-Agent", "vb.net_program") Dim s As System.IO.Stream = wc.OpenRead(URL) Dim r As String Dim sr As System.IO.StreamReader = New System.IO.StreamReader(s, System.Text.Encoding.UTF7, False) r = sr.ReadToEnd() Return r End Function
Hvis du vil have mere styr over hvad der foregår så kan du bruge (Http)WebRequest og (Http)WebResponse - der kan du læse HTTP statud kod eog den slags.
Måden at gøre det på, er at fange fejlen med try/catch.
Dim wc As New System.Net.WebClient() Try wc.Headers.Add("User-Agent", "vb.net_program") Dim s As System.IO.Stream = wc.OpenRead(URL) Dim r As String Dim sr As System.IO.StreamReader = New System.IO.StreamReader(s, System.Text.Encoding.UTF7, False) r = sr.ReadToEnd() Return r Catch ex As System.Exception Response.Write("Der skete en fejl: " & ex.Message) Return null End Try
Tak for hjælpen, jeg har fundet denne function og forsøgt mig lidt med WebRequest/WebResponse, men har problemer med headerne.
Fejl - This header must be modified with the appropriate property
Public Function GetHTMLPage(ByVal URL As String) As String Try Dim sResult As String Dim oHttp As HttpWebRequest Dim objResponse As WebResponse Dim objRequest As WebRequest = System.Net.HttpWebRequest.Create(URL)
Ifølge WebRequest's WebHeaderCollection, så er User-Agent en "restricted header", hvad end det så betyder: "Some common headers are considered restricted and are either exposed directly by the API (such as Content-Type) or protected by the system and cannot be changed."
Remarks The WebHeaderCollection class is generally accessed through WebRequest.Headers or WebResponse.Headers. Some common headers are considered restricted and are either exposed directly by the API (such as Content-Type) or protected by the system and cannot be changed.
The restricted headers are:
Accept Connection Content-Length Content-Type Date Expect Host If-Modified-Since Range Referer Transfer-Encoding User-Agent <---------------------------
Jeg fandt den ikke fordi den var gemt under HttpWebRequest ikke WebRequest.
[det må også betyde at det må skulle være Dim objRequest As HttpWebRequest = ...]
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.