2014-04-24 75 views
0

有沒有辦法提取正在發送的文本作爲發生WebException的一部分可能發生HttpWebResponse?我可以得到所有的頭文件信息,但是如果可能的話,我想獲得400或401響應的返回自定義消息。我目前正在處理異常在我的測試是這樣的:有沒有辦法從WebException中提取消息?

 var ex = Assert.Throws<WebException>(() => 
     { 
      HttpWebResponse response = Utils.GetRawResponse(url); 
     }); 

     Assert.Contains("401", ex.Message); 

下面是我得到的迴應:

public static HttpWebResponse GetRawResponse(string requestURL) 
{ 

    HttpWebRequest request = WebRequest.Create(requestURL) as HttpWebRequest; 

    HttpWebResponse response = request.GetResponse() as HttpWebResponse; 


    return response; 

} 

而這個工作,但不具有自定義消息。

前可望成爲一個更加清楚一點時這裏指的是消息文本中的截圖: enter image description here

+0

該消息應該是在響應主體,你試圖讓響應流,並讀給一個字符串? – Gusman

+0

啊流異常響應......嗯。 –

+1

最後,一個400響應是一個正常的Web響應,在一個WebException內部有一個響應對象,並帶有來自服務器的真實響應 – Gusman

回答

0

隨着Gusmans提醒我創建了一個方法來提取從引發WebException響應:

public static string ParseExceptionRespose(WebException exception) 
    { 
     string responseContents; 
     Stream descrption = ((HttpWebResponse)exception.Response).GetResponseStream(); 

     using (StreamReader readStream = new StreamReader(descrption)) 
     { 
      responseContents = readStream.ReadToEnd(); 
     } 

     return responseContents; 

    } 
相關問題