使用如下方法:
 public string GetHtml(string url, string refUrl, string postData, bool isPost, CookieContainer cookieContainer)
        {
            if (string.IsNullOrEmpty(postData))
            {
                return GetHtml(url, cookieContainer);
            }            byte[] byteRequest = Encoding.Default.GetBytes(postData);            HttpWebRequest httpWebRequest;
            httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);            httpWebRequest.CookieContainer = cookieContainer;
            httpWebRequest.ContentType = contentType;
            httpWebRequest.Referer = refUrl;
            httpWebRequest.Accept = accept;
            httpWebRequest.UserAgent = userAgent;
            httpWebRequest.Method = isPost ? "POST" : "GET";
            httpWebRequest.ContentLength = byteRequest.Length;            Stream stream = httpWebRequest.GetRequestStream();
            stream.Write(byteRequest, 0, byteRequest.Length);
            stream.Close();            HttpWebResponse httpWebResponse;            
            httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            Stream responseStream = httpWebResponse.GetResponseStream();
            StreamReader streamReader = new StreamReader(responseStream, encoding);
            string html = streamReader.ReadToEnd();
            streamReader.Close();
            responseStream.Close();            return html;
        }当使用这个方法做正常一般的Http请求,都OK。
但是当使用这个对有些SOAP做请求时,请求结果是返回http500错误,然后也同时返回了SOAP的请求结果而这时上面方法中这句:
            httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
就会引发服务器500错误,而导致httpWebResponse值不正确。但是实际上这时 服务器是有返回值的,是告诉哪里出错的调试信息。怎么办?  怎么能取到 那个返回的信息?