使用如下方法:
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值不正确。但是实际上这时 服务器是有返回值的,是告诉哪里出错的调试信息。怎么办? 怎么能取到 那个返回的信息?
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值不正确。但是实际上这时 服务器是有返回值的,是告诉哪里出错的调试信息。怎么办? 怎么能取到 那个返回的信息?
解决方案 »
- 为什么不能实现在托盘显示程序图标?
- 怎么把有'\0'转换成空格?
- GDI+高手来看看----绘制铁路的问题
- 如何设置能够弹出多个form界面?
- 关于生成大型文本文件 请教效率问题!
- datagridview怎么把单元格拆分两行,并绑定数据库
- 如何将axSpreadsheet导出的XML转html在webBrowser显示! 解决送分??
- 求正则表达式,高分相酬!
- 求助printDocument1.PrinterSettings.PrinterName设置上打印机名称,但是判断是无效的
- 请问我怎么在窗体启动时隐藏窗体 只显示 NotifyIcon图标
- C# GDI+画三色笔闪烁问题!
- C#如何打开应用程序,设置应用程序的显示位置?
2,对方有鉴权.1的可能性最大.