2017-01-11 2 views
0

Ich bin eine XML-Webservice-URL von C# unter Verwendung von Standard WebRequest Code aufrufen:Fehlercodes von WebRequest ignorieren?

 WebRequest request = WebRequest.Create(MethodCall); 
     WebResponse response = request.GetResponse(); 
     Stream stream = response.GetResponseStream(); 
     StreamReader streamReader = new StreamReader(stream); 
     string xml = streamReader.ReadToEnd(); 

Der betreffende Dienst liefert XML; Im Fehlerfall erhalten Sie oft noch XML mit detaillierten Fehlerinformationen, aber es gibt auch einen HTTP-Fehlercode 400 zurück. Ausführen der Abfrage über Chrome Ich kann die XML und den Fehlercode in den Dev-Tools sehen, aber meine C# Code wirft ein. Net WebException in der GetResponse() Anruf, so dass ich nie die detaillierten Fehlerinformationen sehen.

Gibt es eine Möglichkeit kann ich sagen. NET keine Ausnahme zu werfen, aber immer noch den Fehlercode zu melden, damit ich das zurückgegebene XML überprüfen kann?

Antwort

2

ändern WebResponse response = request.GetResponse(); zu

WebResponse response; 
try 
{ 
    response = request.GetResponse(); 
} 
catch (WebException ex) 
{ 
    response = (ex.Response as WebResponse); 
    if (response == null) 
     throw; 
} 

Diese funktionieren sollte.