string url = "http://localhost:/Activex/Serverpage.aspx";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
string Data = "Data=测试数据";
byte[] b = System.Text.Encoding.Default.GetBytes(Data);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = b.Length;
Stream sw = request.GetRequestStream();
sw.Write(b, 0, b.Length); //写入数据
sw.Close(); try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream sw1 = response.GetResponseStream();
StreamReader sr = new StreamReader(sw1, System.Text.Encoding.Default);
MessageBox.Show(sr.ReadToEnd()); //在这里输入发送后,页面返回的结果
sr.Close();
}
catch (System.Net.WebException ex)
{
MessageBox.Show(ex.Status.ToString());
}
以上代码在WEB程序中可以正常返回请求页面中RESPONSE的内容.为什么放在APPLICATION程序中就出错:远程服务器返回错误:(500)内部服务器错误.查看STATUS的内容是:PROTOCOLERR 解释为: 从服务器接收的响应是完整的,但该响应指示协议级别上有错误。
现正迷茫中,期待高手能解决此问题!
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
string Data = "Data=测试数据";
byte[] b = System.Text.Encoding.Default.GetBytes(Data);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = b.Length;
Stream sw = request.GetRequestStream();
sw.Write(b, 0, b.Length); //写入数据
sw.Close(); try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream sw1 = response.GetResponseStream();
StreamReader sr = new StreamReader(sw1, System.Text.Encoding.Default);
MessageBox.Show(sr.ReadToEnd()); //在这里输入发送后,页面返回的结果
sr.Close();
}
catch (System.Net.WebException ex)
{
MessageBox.Show(ex.Status.ToString());
}
以上代码在WEB程序中可以正常返回请求页面中RESPONSE的内容.为什么放在APPLICATION程序中就出错:远程服务器返回错误:(500)内部服务器错误.查看STATUS的内容是:PROTOCOLERR 解释为: 从服务器接收的响应是完整的,但该响应指示协议级别上有错误。
现正迷茫中,期待高手能解决此问题!
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
可能会有其他端口运行。是否80?
1.此程序在ASP.NET 的WEBFORM中运行正常,在WINFORM中出现上述异常.不知为何?
2.上午又在网上爬了一上午,找到了蝈蝈俊写的文章.当 HttpWebResponse response = (HttpWebResponse)request.GetResponse();出错时可以用
try
{
response = (HttpWebResponse)request.GetResponse();
}
{
response = (HttpWebResponse)ex.Response;
}
来取得服务器返回的HTML,但我试了一下:在WEBFORM中返回的SR.READTOEND()返回的是我在SERVERPAGE.ASPX用流输出的字符,但在WINFORM中用EX.RESPONSE返回的却是整个页面的HTML源码!