(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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.