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

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

网页系统那边返回jason格式对象(左大括号{ + 双引号里字段名 + 引号 + 双引号里字段值…………)
C# 实现HTTP的POST(完整可运行并且通过测试的代码)_第2张图片

直接打开浏览器,在地址栏里输入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();

你可能感兴趣的:(C#基础篇)