Wednesday, October 5, 2011

[C#] 取得WebRequest錯誤後的資訊

日前在用 WebRequest 與廠商串接功能,他們的錯誤訊息蠻特別的,是直接回 HTTP Error 400 Bad request ,然後把 error code 寫到 body 裡,在 C# 裡使用 WebRequest 一遇到 Status Code 400 就會跳錯誤了,所以沒辦法用原本的方式接資料,原本還在想要不要用 wget 先 debug ,後來找了一下才知道可以用 WebException 去讀出回傳的資料,這就方便了許多,方法如下。
            try
            {
                //your WebRequest , WebResponse
            }
            catch (WebException e)
            {
                Stream dataStream = e.Response.GetResponseStream();
                StreamReader reader = new StreamReader(dataStream, encode);                
                Console.WriteLine(reader.ReadToEnd());
            }

這樣就可以拉到錯誤時的資訊了。

No comments:

Post a Comment