2014-04-24 72 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; 

    } 
相关问题