最近写了个软件,用到了POST发送数据包给网页,但是部分电脑报错:服务器提交了协议冲突,问了下度娘,也问了谷姐,都是说app.config添加什么什么=true之内的,用了,问题依旧存在,然后寻找原因,最后问题找到了,IE的问题,为了确认到底是不是IE的问题,专门用虚拟机装了个IE6的XP,结果提示服务器提交了协议冲突,然后关闭软件,安装IE8后,重启,软件工作正常。但是IE9也出现了这种问题。我是WIN7 X64 IE8,没问题,但是人家用不了,所以就想问问Socket如何发送POST数据给网页呢?
为啥直接用基于http的?
为啥不用WebClient?
http://www.cnblogs.com/liushuling/archive/2009/12/04/1617324.html
和
HttpWebResponse
你好好研究下吧 很方便。 顺便给你个简单的例子例子来源于互联网,大概就是这么一种格式。如果这个你都搞不懂那就没办法了。Encoding myEncoding = Encoding.GetEncoding("gb2312");
string param =
HttpUtility.UrlEncode("参数一", myEncoding) +
"=" + HttpUtility.UrlEncode("值一", myEncoding) +
"&" + HttpUtility.UrlEncode("参数二", myEncoding) +
"=" + HttpUtility.UrlEncode("值二", myEncoding);
byte[] postBytes = Encoding.ASCII.GetBytes(param);
HttpWebRequest req = (HttpWebRequest)
HttpWebRequest.Create( "http://www.baidu.com/s" );
req.Method = "POST";
req.ContentType =
"application/x-www-form-urlencoded;charset=gb2312";
req.ContentLength = postBytes.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(bs, 0, bs.Length);
}
using (WebResponse wr = req.GetResponse())
{
//在这里对接收到的页面内容进行处理
}
设置一个隐藏的webbrowser,指向一个用装置js的html页面,
然后与服务数据的交互全部通过Ajax。