2017-01-11 41 views
0

我使用標準的WebRequest代碼調用從C#的XML Web服務的URL:忽略來自WebRequest的失敗代碼?

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

有問題的服務返回的XML;如果出現錯誤,您仍然可以通過詳細的錯誤信息返回XML,但是但是它也會返回HTTP錯誤代碼400. 通過Chrome運行查詢我可以在開發工具中看到XML和錯誤代碼,但是我的C#代碼在GetResponse()調用中拋出.Net WebException,所以我從來沒有看到詳細的錯誤信息。

有沒有一種方法可以告訴.net不要拋出異常,但仍然報告錯誤代碼,所以我可以檢查返回的XML?

回答

2

變化WebResponse response = request.GetResponse();

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

這應該工作。