日期:2014-05-18  浏览次数:20769 次

关于HTTPWEBREQUEST的问题,(敬请孟子,思归大侠及各路高手指点进来指点迷津)!分不是问题!
C# code
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 解释为: 从服务器接收的响应是完整的,但该响应指示协议级别上有错误。
现正迷茫中,期待高手能解决此问题!

------解决方案--------------------
byte[] b = System.Text.Encoding.Default.GetBytes(Data)中的Default改成utf-8试一下。这个页面不需要登录吗?
------解决方案--------------------
string url = "http://localhost:/Activex/Serverpage.aspx";

地址对吗?

最好用sniffer软件分析一下正常的数据报是怎样的
  
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
http://feiyun0112.cnblogs.com/
------解决方案--------------------
string url = "http://localhost:/Activex/Serverpage.aspx"; 
可能会有其他端口运行。是否80?
------解决方案--------------------
代码没问题,