HttpWebRequest請求返回非200的時候 HttpWebResponse怎么接受返回錯誤提示


   當我們使用HttpWebRequest發送請求的時候如果服務器返回的不是200狀態,那么請求代碼肯定會異常,其實請求和返回並沒有什么異常,只是.net內部就認定了 返回的不要是200 就是異常

  那么我們怎么捕獲這個HttpWebResponse異常呢

 

 try
            {
                HttpWebRequest httpReq = WebRequest.Create(Url) as HttpWebRequest;
                WebResponse wenReq = null;
                HttpWebResponse httpRes = null;
                string OutHtml = "";

                try
                {
                    httpReq.Method = "POST";
                    //................. 
                    //寫入參數
                    byte[] postData = Encoding.UTF8.GetBytes(parmst);//參數編碼UTF-8  
                    System.IO.Stream outputStream = httpReq.GetRequestStream();
                    outputStream.Write(postData, 0, postData.Length);
                    outputStream.Close();
                   //這里如果服務器不返回200狀態就會報異常
                    wenReq = httpReq.GetResponse();
                    httpRes = wenReq as HttpWebResponse;
                    Stream strRes = httpRes.GetResponseStream();
                    using (StreamReader read = new StreamReader(strRes, Encoding.UTF8))
                    {
                        OutHtml = read.ReadToEnd();
                    }
                    httpReq.Abort();
                    strRes.Close();
                    strRes.Dispose();
                    httpRes.Close();
                }
                catch (WebException ex) // 這樣我們就能捕獲到異常,並且獲取服務器端的輸出
                {
                    wenReq = (HttpWebResponse)ex.Response;
                    using (StreamReader sr = new StreamReader(wenReq.GetResponseStream(), Encoding.UTF8))
                    {
                        LogResult(Url + ";Exception Err:" + ex.Message + ";Err JSON:" + sr.ReadToEnd(), "httperr");
                    }
                    httpReq.Abort();
                }
                catch (Exception ex)
                {
                    //bgTask g = new bgTask();
                    LogResult(Url + ";Exception Err:" + ex.Message, "httperr");
                }
    

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM