C# 实现HTTP的POST(完整可运行并且通过测试的代码)

我是通过VS2010 ,新建一个winform窗体项目,然后写了一个测试软件,软件里最后通过HTTP的POST把测试结果数据上传到一个网页系统里,我们之间的协议很简单:
C#这边就是标准的POST发送格式(网页系统服务器地址+端口号+具体路径+一个问号+数据字段名=数据值 +&+数据字段名=数据值………)
这里写图片描述

网页系统那边返回jason格式对象(左大括号{ + 双引号里字段名 + 引号 + 双引号里字段值…………)
这里写图片描述

直接打开浏览器,在地址栏里输入HTTP Post要发送给网页系统的数据,也可以运行的

头文件
using System.Net.Http;
using System.Net;

                Encoding myEncoding = Encoding.GetEncoding("gb2312");  //选择编码字符集
                string data = "sn=" + _uScanCode + "&lanMac=" + _sRecieveLanMac + "&wifiMac=" + _sRecieveWifi2Mac + "&testUserName=" + sTestUser + "&testDateTime=" + sTimeStr;  //要上传到网页系统里的数据(字段名=数值 ,用&符号连接起来)
                byte[] bytesToPost = System.Text.Encoding.Default.GetBytes(data); //转换为bytes数据

                string responseResult = String.Empty;
                HttpWebRequest req = (HttpWebRequest)
                HttpWebRequest.Create("http://192.168.60.59:81/rpc/snBurn/insertBySN");   //创建一个有效的httprequest请求,地址和端口和指定路径必须要和网页系统工程师确认正确,不然一直通讯不成功
                req.Method = "POST";
                req.ContentType =
                "application/x-www-form-urlencoded;charset=gb2312";
                req.ContentLength = bytesToPost.Length;

                using (Stream reqStream = req.GetRequestStream())
                {
                    reqStream.Write(bytesToPost, 0, bytesToPost.Length);     //把要上传网页系统的数据通过post发送
                }
                HttpWebResponse cnblogsRespone = (HttpWebResponse)req.GetResponse();
                if (cnblogsRespone != null && cnblogsRespone.StatusCode == HttpStatusCode.OK)
                {
                    StreamReader sr;
                    using (sr = new StreamReader(cnblogsRespone.GetResponseStream()))
                    {
                        responseResult = sr.ReadToEnd();  //网页系统的json格式的返回值,在responseResult里,具体内容就是网页系统负责工程师跟你协议号的返回值协议内容
                    }
                    sr.Close();
                }
                cnblogsRespone.Close();
using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; using System.Collections; using System.IO; using System.Text.RegularExpressions; using RE = System.Text.RegularExpressions.Regex; using System.Security.Cryptography.X509Certificates; /*************************************************************************************************************************************************** * *文件名:HttpProc.cs * *创建人:HeDaode * *日 期:2007.09.01 * *描 述:实现HTTP协议中的GET、POST请求 * *使 用:HttpProc.WebClient client = new HttpProc.WebClient(); client.Encoding = System.Text.Encoding.Default;//默认编码方式,根据需要设置其他类型 client.OpenRead("http://www.baidu.com");//普通get请求 MessageBox.Show(client.RespHtml);//获取返回的网页源代码 client.DownloadFile("http://www.codepub.com/upload/163album.rar",@"C:\163album.rar");//下载文件 client.OpenRead("http://passport.baidu.com/?login","username=zhangsan&password=123456");//提交表单,此处是登录百度的示例 client.UploadFile("http://hiup.baidu.com/zhangsan/upload", @"file1=D:\1.mp3");//上传文件 client.UploadFile("http://hiup.baidu.com/zhangsan/upload", "folder=myfolder&size=4003550",@"file1=D:\1.mp3");//提交含文本域和文件域的表单 *****************************************************************************************************************************************************/ namespace HttpProc { /// ///上传事件委托 /// /// /// public delegate void WebClientUploadEvent(object sender, HttpProc.UploadEventArgs e); /// ///下载事件委托 /// /// /// public delegate void WebClientDownloadEvent(object sender, HttpProc.DownloadEventArgs e); /// ///上传事件参数 /// public struct UploadEventArgs { /// ///上传数据总大小 ///
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值