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.
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%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. "
Tags und Links httpwebrequest c#-4.0