zoukankan      html  css  js  c++  java
  • C# HttpWebRequest post提交数据,提交对象

    1、客户端方法

    //属于客户端
    //要向URL Post的方法
    public void PostResponse()
            {
                HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://demo2.cm-force.com/appapi/apiaccount/aa");//这是你要提交的url
                Encoding encoding = Encoding.UTF8;
                
                //参数少的情况下,直接拼接参数字符串 
    //string param = "UserName=123&UserPwd=123";//post 参数
     
               /*
               //这是要提交的model对象
                Car c = new Car();
                c.Passed = true;//true
                c.LinkTel = "小测试";
                c.CarBrand = "11111111";
                c.Loads = 101;
                c.UserId = 50;
                c.SortId = 1;
                c.CarArea = "11111111";
                c.CarStateId = 1;
                c.LinkMan = "1111111111";
                c.Sfzh = "141124188789786031";
                c.CarNum = "ABCDE1";
                c.CarLength = 100;
                c.DrivingNum = "11111111";
                c.State = 1;
                c.CarId = 0;
                c.CarOwner = "111111";
                c.CarAreaId = 1;
                c.CarTypeId = 1;
                c.AddTime = DateTime.Now;
                */
               
                /*1、如果对象参数比较多的情况下,使用Dictionary字典提交数据,这样比较清晰。(针对对象)
                  2、如果字段比较少的话,就直接通过拼接参数提交。例如:UserName=123&UserPwd=123 (针对少量参数)*/
                
                //比照上面的Car对象转成Dictionary<string, string>泛型集合
                IDictionary<string, string> para = new Dictionary<string, string>();
                para.Add("LinkTel", "第二次测试");
                para.Add("CarBrand", "1111");
                para.Add("Loads", "101");
                para.Add("UserId", "50");
                para.Add("SortId", "1");
    
                StringBuilder buffer = new StringBuilder();//这是要提交的数据
                  int i = 0;
    
                //通过泛型集合转成要提交的参数和数据
                  foreach (string key in para.Keys)
                {
                    if (i > 0)
                    {
                        buffer.AppendFormat("&{0}={1}", key, para[key]);
                    }
                    else
                    {
                        buffer.AppendFormat("{0}={1}", key, para[key]);
                    }
                    i++;
                } 
    
                //通过泛型转化得到的提交数据:LinkTel=第二次测试&CarBrand=1111&Loads=101&UserId=50&SortId=1
                //其实与上面的直接拼接参数无异,
                  byte[] bs = Encoding.UTF8.GetBytes(buffer.ToString());//UTF-8
    
                string responseData = String.Empty;
                req.Method = "POST";
                req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
                req.ContentLength = bs.Length;
                using (Stream reqStream = req.GetRequestStream())
                {
                    reqStream.Write(bs, 0, bs.Length);
                    reqStream.Close();
                }
                using (HttpWebResponse response = (HttpWebResponse)req.GetResponse())
                {
                    using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
                    {
                        responseData = reader.ReadToEnd().ToString();
                    }
                    Response.Write(responseData);
                }
            }

    2、服务端接收Post的数据

    //发布车辆 Post方式接收,接收的是Car model对象
            [HttpPost]
            public JsonResult Caradd(InfoSL_APP.Contract.Logis.Model.Car model)
            {
                try
                {
                   //下面就是您要操作接收回来的Model对象
                    int b= apibll.Caradd(model);
                    if (b>0)
                    {
                       //发布车辆成功json
                        return  Json(sb.ToString());
                        
                    }
                    else
                    {
                        return resultJson(b.ToString(), "发布车辆添加失败!");
                    }
                }
                catch (Exception ex)
                {
                    return errorJson(ex.Message.ToString());
                }
            }
  • 相关阅读:
    mac xcode c++ cin cout注意细节一
    linux c++编译问题和虚拟机网络通信
    cocos2d之列表容器节点再排序
    cocos2d之z轴位置示例
    cocos2d之json使用实例
    绑定方法与非绑定方法
    Python 多态与抽象类
    面向对象
    面向对象之继承与派生
    面向对象之类与对象
  • 原文地址:https://www.cnblogs.com/pingming/p/4683659.html
Copyright © 2011-2022 走看看