• 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");
                    }
        
    

      

  • 相关阅读:
    高级同步器:交换器Exchanger
    高级同步器:同步屏障CyclicBarrier
    转:java中的定时任务
    spring事务配置,声明式事务管理和基于@Transactional注解的使用(转)
    深入研究Java类加载机制
    接口可以继承多个接口总结
    序列化和反序列化(转)
    tomcat常见错误及解决方案
    数据库连接池的实现及原理
    proxy是什么
  • 原文地址:https://www.cnblogs.com/sxmny/p/5160601.html
Copyright © 2020-2023  润新知