C# form如何使用Socket给网页发送POST数据
最近写了个软件,用到了POST发送数据包给网页,但是部分电脑报错:服务器提交了协议冲突,问了下度娘,也问了谷姐,都是说app.config添加什么什么=true之内的,用了,问题依旧存在,然后寻找原因,最后问题找到了,IE的问题,为了确认到底是不是IE的问题,专门用虚拟机装了个IE6的XP,结果提示服务器提交了协议冲突,然后关闭软件,安装IE8后,重启,软件工作正常。但是IE9也出现了这种问题。我是WIN7 X64 IE8,没问题,但是人家用不了,所以就想问问Socket如何发送POST数据给网页呢?
[解决办法]
Socket 太麻烦了。重新封装很多数据格式啊。
HttpWebRequest
和
HttpWebResponse
你好好研究下吧 很方便。 顺便给你个简单的例子
例子来源于互联网,大概就是这么一种格式。如果这个你都搞不懂那就没办法了。
- C# code
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()) { //在这里对接收到的页面内容进行处理 }