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());
            }
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM