C # HttpWebRequest ignoriert den HTTP 500-Fehler

8

Ich versuche, eine Seite mit der WebRequest-Klasse in C # 4.0 herunterzuladen. Aus irgendeinem Grund gibt diese Seite den gesamten Inhalt korrekt zurück, aber mit einem HTTP 500 internen Fehlercode.

%Vor%

Wenn die Seite HTTP 500 oder 404 zurückgibt, löst diese Methode eine WebException aus. Wie kann ich das ignorieren? Ich weiß, dass es 500 zurückgibt, aber ich möchte immer noch den Inhalt der Seite / Antwort lesen.

    
peter 07.10.2010, 13:53
quelle

4 Antworten

20

Sie können einen try / catch-Block verwenden, um die Ausnahme abzufangen und im Fall von http 404- oder 500-Fehlern eine zusätzliche Verarbeitung durchzuführen, indem Sie das Antwortobjekt betrachten, das von der WebExeption-Klasse bereitgestellt wird.

%Vor%     
Martin Hyldahl 07.10.2010 14:22
quelle
7
%Vor%     
peter 07.10.2010 13:55
quelle
0

Verwenden Sie einen try / catch -Block, damit Ihr Programm weiterlaufen kann, selbst wenn eine Ausnahme ausgelöst wird:

%Vor%     
Donut 07.10.2010 13:54
quelle
0

Das Problem liegt daran, dass keine Browserdetails an die anfordernde Site gesendet werden. Sie müssen sich auf der Website, für die Sie die Daten anfordern, identifizieren.

Fügen Sie einfach einen Useragent zu Ihrem Code hinzu

  

request.UserAgent="Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 2.0) Gecko / 20100101 Firefox / 4.0";

Der Endcode sollte etwa so aussehen:

%Vor%

Bitte finden Sie die Referenz / den Nachweis für den oben genannten Code: Ссылка

Dies wurde in dem Link

erwähnt
  

"Eine WebClient-Instanz sendet standardmäßig keine optionalen HTTP-Header. Wenn für Ihre Anfrage ein optionaler Header erforderlich ist, müssen Sie den Header der Header-Auflistung hinzufügen. Um beispielsweise Abfragen in der Antwort zu behalten, müssen Sie einen Benutzer hinzufügen. Agent-Header. Außerdem können Server 500 (Interner Serverfehler) zurückgeben, wenn der Header des Benutzeragenten fehlt. "

    
Tejaswi Pandava 10.03.2017 14:34
quelle

Tags und Links