2013-08-23 14 views
11

Dies ist mein Code:HttpWebRequest akzeptieren 500 Internal Server Error

HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest; 

WebResponse wr = req.GetResponse(); 

Wenn der Server 500 Internal Server Error zurückgibt, Ausnahme in req.GetResponse geworfen wird(). Ich möchte, dass GetResponse() diesen Response Code akzeptiert. Es ist normal, dass die übergebene URL diesen Response Code auslöst. Ich möchte den HTML-Code trotz Response Code 500 Internal Server Error analysieren. Kann die GetResponse() -Methode nicht den Antwortcode verifizieren?

+0

Ihre Fragen keinen Sinn für mich. HttpWebRequest.GetResponse() macht nichts besonderes, wenn es einen 500 Antwortcode empfängt. Sie können den HTML-Code, den Sie erhalten, analysieren. –

+0

Sie sollten die neue Klasse [HttpClient] (http://msdn.microsoft.com/en-us/library/system.net.http.httpclient.aspx) verwenden. – glautrou

+0

Ich habe deinen Titel bearbeitet. Bitte lesen Sie "[Sollten die Fragen" Tags "in ihren Titeln enthalten?] (Http://meta.stackexchange.com/questions/19190/)", wobei der Konsens "nein, sie sollten nicht" lautet. –

Antwort

39
try 
{ 
    HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest; 

    WebResponse wr = req.GetResponse(); 
} 
catch (WebException wex) 
{ 
    var pageContent = new StreamReader(wex.Response.GetResponseStream()) 
          .ReadToEnd(); 
} 
+1

Erstaunlich, danke! – Darxis

+0

Vielen Dank! – b729sefc

+0

Das ist genial !!! Du hast mir gerade so viel Zeit gespart !!! – Dmytro

0

ich mit diesem Code aufgelöst:

class Program 
{ 
    static void Main(string[] args) 
    { 
     var soap = @"<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:tem=""http://tempuri.org/""><s:Body><GetData xmlns = ""http://tempuri.org/""><value>2</value></GetData></s:Body></s:Envelope>"; 

     HttpWebRequest req = (HttpWebRequest)WebRequest.Create(@"http://localhost:51148/Service1.svc"); 

     req.Headers.Add($"SOAPAction", "http://tempuri.org/IService1/GetData"); 
     req.ContentType = "text/xml;charset=\"utf-8\""; 

     byte[] data = System.Text.Encoding.UTF8.GetBytes(soap); 
     req.ContentLength = data.Length; 

     req.Accept = "text/xml"; 
     req.Method = "POST"; 

     Stream stm = req.GetRequestStream(); 
     stm.Write(data, 0, data.Length); 

     try 
     { 

      WebResponse response = req.GetResponse(); 
      Stream responseStream = response.GetResponseStream(); 
     } 
     catch (WebException webex) 
     { 
      WebResponse errResp = webex.Response; 
      using (Stream respStream = errResp.GetResponseStream()) 
      { 
       StreamReader reader = new StreamReader(respStream); 
       string text = reader.ReadToEnd(); 
      } 
     } 
    } 
} 
Verwandte Themen