(VB.net) WebClient -> Bessere Fehlerauswertung

Gast #7355792
Lesenswert?

Hallo Leute,

Ich benutze den WebClient um Daten ins Netz zu stellen und auch zu holen. (Wordpress / RestAPI)

Mein Code ist wie folgt:

1
Dim wc As New WebClient()
2
    
3
try
4
  ResponseJson = wc.DownloadString(ApiCall)
5
ex As WebException
6
  ErrorCode = ex.Message
7
  If Not IsNothing(ex.InnerException) Then
8
    ErrorCode = ErrorCode & " -> " & ex.InnerException.ToString
9
  End If
10
end try

Wenn ein Fehler auftritt, bekomme ich da dann z.Bsp. folgende Meldungen:

1
Der Remoteserver hat einen Fehler zurückgegeben: (404) Nicht gefunden.
2
Der Remoteserver hat einen Fehler zurückgegeben: (401) Nicht autorisiert.

Wenn ich aber das Programm Postman verwende, gibt mir das weit genauere Auskunft. Z.Bsp. Benutzer/Passwort falsch, ...

Wie komme ich zu den erweiterten Fehlertexten des WebClients?

#7356855
Lesenswert?

Rutz schrieb:

Wie komme ich zu den erweiterten Fehlertexten des WebClients?

Das sind keine Fehlertexte des "WebClients", das ist der Response-Body, den der Webserver zusätzlich zum (z.B.) "404 Not Found" Status zurückmeldet.

der WebClient liest den per Default nicht aus, sondern schmeißt die Exception bei Nicht-OK Statuscodes.

Über die Exception kommst du an das "Response"-Objekt, ex.Response: https://learn.microsoft.com/en-us/dotnet/api/system.net.webexception.response?view=net-7.0#system-net-webexception-response

Über das Response-Objekt kommst du an den ResponseStream (GetResponseStream()) https://learn.microsoft.com/en-us/dotnet/api/system.net.webresponse.getresponsestream?view=net-7.0#system-net-webresponse-getresponsestream

Auf diesen kannst du einen StreamReader ansetzen, und per ReadLine() oder ReadToEnd() usw. deine Fehlermeldung auslesen.

https://learn.microsoft.com/en-us/dotnet/api/system.io.streamreader.readtoend?view=net-7.0#system-io-streamreader-readtoend

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren