Moin Leute,
brauche mal einen Denkanstoß.
Code:
try {
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Proxy = null;
WebResponse response = request.GetResponse();
}
catch (WebException ex)
{
return "404";
}
Bei dem response kann es dazu kommen, dass die url nicht erreichbar ist. Compiler haut mir dann eine 404 Fehlermeldung raus.
Leider greift die WebException nicht so wie ich möchte, bzw. catch'ed diese nicht.
Freue mich auf Ansätze und Hinweise!
Naja - so gesehen ist ja keine Exception aufgetreten, sondern du hast eine Antwort vom Server bekommen - diese lautet: "Was du da willst, gibt es hier nicht"
Selbiges findest du im Status vom HttpWebResponse wieder.
//edit: WebResponse hat keinen Status, aber HttpWebResponse
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
Stimmt dort gibt es dir Statuscode's, wie kann ich diese denn abfangen, habs wie folgt probiert:
if (((HttpWebResponse)request.GetResponse).StatusCode.ToString() == "404")
Leider hab ich den gleichen Fehler wieder.
Du machst das irgendwie alles andere als elegant; folgendes sollte gehen ( ungetestet ):
WebRequest request = WebRequest.Create( meineUrl );
using ( HttpWebResponse response = ( HttpWebResponse ) request.GetResponse() )
{
switch ( response.StatusCode )
{
case HttpStatusCode.NotFound: /* 404 */
{
// nicht gefunden
}
break;
case HttpStatusCode.OK: /* 200 */
{
// alles paletti
}
break;
default:
{
Console.WriteLine( string.Format( "Status Code: {0}", ( int ) response.StatusCode ) );
}
break;
}
}
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code