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 解释为: 从服务器接收的响应是完整的,但该响应指示协议级别上有错误。
现正迷茫中,期待高手能解决此问题!

解决方案 »

  1.   

    byte[] b = System.Text.Encoding.Default.GetBytes(Data)中的Default改成utf-8试一下。这个页面不需要登录吗?
      

  2.   

    string url = "http://localhost:/Activex/Serverpage.aspx";地址对吗?最好用sniffer软件分析一下正常的数据报是怎样的
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
    http://feiyun0112.cnblogs.com/
      

  3.   

    string url = "http://localhost:/Activex/Serverpage.aspx"; 
    可能会有其他端口运行。是否80?
      

  4.   

    有这么多人特别是孟子大哥的关注好高兴呀!先谢谢各位.现在的问题是:
    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源码!