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());
            }
        }
时间: 2024-10-25 18:33:44

C# HttpWebRequest post提交数据,提交对象的相关文章

【转】C# HttpWebRequest提交数据方式

[转]C# HttpWebRequest提交数据方式 HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择.它们支持一系列有用的属性.这两个类位 于System.Net命名空间,默认情况下这个类对于控制台程序来说是可访问的.请注意,HttpWebRequest对象不是利用new关键字通过构 造函数来创建的,而是利用工厂机制(factory mechanism)通过Create()方法来创建的.另外,你可能预计需要显式地调用一个"Send"

C# HttpWebRequest提交数据方式浅析

原文:http://developer.51cto.com/art/200909/149995.htmC# HttpWebRequest提交数据方式其实就是GET和POST两种,那么具体的实现以及操作注意事项是什么呢?那么本文就向你详细介绍C# HttpWebRequest提交数据方式的这两种利器. AD:2014WOT全球软件技术峰会北京站 课程视频发布 C# HttpWebRequest提交数据方式学习之前我们先来看看什么是HttpWebRequest,它是 .net 基类库中的一个类,在命

使用 HttpWebRequest 向网站提交数据(转)

使用 HttpWebRequest 向网站提交数据 http://www.blogjava.net/killme2008/archive/2011/05/20/105023.html 转自:http://www.cnblogs.com/webman/archive/2006/11/17/564106.html HttpWebRequest 是 .net 基类库中的一个类,在命名空间 System.Net 下面,用来使用户通过 HTTP 协议和服务器交互. HttpWebRequest 对 HTT

C#中使用 HttpWebRequest 向网站提交数据

HttpWebRequest 是 .NET 基类库中的一个类,在命名空间 System.Net 里,用来使用户通过 HTTP 协议和服务器交互. HttpWebRequest 对 HTTP 协议进行了完整的封装,对 HTTP 协议中的 Header, Content, Cookie 都做了属性和方法的支持,很容易就能编写出一个模拟浏览器自动登录的程序. 下面是HttpWebRequest的一些属性,这些属性对于轻量级的自动化测试程序是非常重要的. AllowAutoRedirect:获取或设置一

C# httpwebrequest批量提交数据到网站。

非新文,由自己以前在baidu网站转来的.(现在百度的博客不喜欢,转来这存档.很久以前的工作笔记了) 因为工作需要要将大致300多条数据提交到网站,而网站在提交 错数据后无法正常进入相应的数据页面进行修改, 不得己自己动手开发一个. 关键字:httpwebrequest, httpwebrespone, excel ,datagradview,httpwatch.cookie 首先下载一个httpwatch安装,在IE中截获提交信息 登录流: POST /index.php/Public/che

ASP.NET 最全的POST提交数据,和接收数据

//1.对象提交,字典方式 //接口方:public ActionResult GetArry(Car model) public void PostResponse() { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://demo2.cm-force.com/appapi/apiaccount/aa"); Encoding encoding = Encoding.UTF8; //string par

利用HttpWebRequest模拟表单提交

1 using System; 2 using System.Collections.Specialized; 3 using System.IO; 4 using System.Net; 5 using System.Text; 6 7 namespace Allyn.Common 8 { 9 public class HttpHelper 10 { 11 /// <summary> 12 /// 获取指定路径数据 13 /// </summary> 14 /// <par

四种常见的 POST 提交数据方式

HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式. 我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范.规范把 HTTP 请求分为三个部分:状态行.请求头.消息主体.类似于下面这样: BASH<method> <request-URL> <vers

四种常用的post数据提交方式

application/x-www-form-urlencoded 这是默认的post传输方式,用url转码的方法,让数据以key1=val1&key2=val2的方式传输.此方式的数据形式与get方式一样. multipart/form-data 这个也是常见的方式,最常用于传输图片和其他文件.下面是一段数据事例: POST http://www.example.com HTTP/1.1 Content-Type:multipart/form-data; boundary=----WebKit