2011-04-08 59 views
0

在下面的內容中,ar.GetResponseAsString()僅引發異常。當狀態爲400時,無法從HTTPWebRequest看到響應正文

這裏是我的代碼:

AsyncCallback GetTheResponse = ar => 
{ 
    try 
    { 
     var result = ar.GetResponseAsString(); 
     Debug.WriteLine(string.Format("ResponseStream:::{0}", result)); 
     callback(result, null); 
    } 
    catch (Exception ex) 
    { 
     Debug.WriteLine(ex.ToString()); 
    } 
} 

我在做什麼錯?

+0

請問什麼是例外信息? 「 – 2011-04-08 15:43:30

+0

」遠程服務器返回錯誤:NotFound。「問題是,我使用Whurl複製了同樣的調用:https://whurl.heroku.com ,並且還有一個響應主體,即使狀態是400(這是我想要了解的部分): { 「用戶」:{ 「錯誤」:{ 「密碼」: 「太短(最小爲4個字符)」 } }, 「錯誤」:{ 「httpCode」:400, 「消息「: 「對於用戶參數無效」 } } – Roger 2011-04-08 16:06:32

回答

2

捕獲400拋出的WebException,然後從異常消息中獲取響應。這就是你的錯誤迴應隱藏的地方

+0

沒錯... 的AsyncCallback GetTheResponse = AR => { 嘗試 { var result = ar.GetResponseAsString(); callback(result,null); (WebException例外) { } Stream stream = ex.Response.GetResponseStream(); StreamReader reader = new StreamReader(stream); string result = reader.ReadToEnd(); Debug.WriteLine(result); } – Roger 2011-04-08 17:32:54

相關問題