none
mvc的action中怎么获取post来的全部数据,包括header内数据? RRS feed

  • 问题

  • 看到标题的可能会有一些迷惑,那我先解释一下:

    我想在我的项目中添加一个接口程序,这个接口为满足系统以外的其他设备通过http(get或者post)来与该项目进行通信,底层是数据库.设备中只能设置服务器ip,即我的项目发布后的ip地址.现在设备向服务器发送数据的接口示例我这里有,如下图:

    

    现在就只知道这些信息,我在项目中添加了api控制器,api中有一个名为cs_data的action,我怎样设置参数,才能接收到设备post过来的数据呢?不确定post数据体的名称,所以我在标题中加入了匿名二字。

    我该怎样得到post过来的数据体呢? 请大家帮忙!


    MVC 深入研究 博客:http://www.cnblogs.com/DoduNet/
    MvcMovieStore 示例网站:MVC 影视 http://MvcMovie.cn/



    • 已编辑 Dodu.NET 2014年7月7日 15:23
    2014年7月7日 8:40

答案

  • 仅从图片上看不出你的请求的具体格式,我以标准的文本表示方式来写一个 POST 请求:

    //----------------------------------------------------------------------------------------------------

    POST http://192.168.1.201:8088/api/cs_datea?SN=xxx&Stamp=99999999HTTP/1.1 /r/n

    Content-Type: text/xml;charset=utf-8 \r\n

    Content-Length: 0 \r\n

    Host: 192.168.1.201 \r\n

    H1: 982 2008-02-25 12:08:21 1 0 \r\n

    \r\n

    上面是你的内容包含在 HTTP HEADER 中时的格式,下面是放置在 BODY 中的格式:

    //----------------------------------------------------------------------------------------------------

    POST http://192.168.1.201:8088/api/cs_datea?SN=xxx&Stamp=99999999HTTP/1.1 /r/n

    Content-Type: text/html;charset=utf-8 \r\n

    Content-Length: 27 \r\n

    Host: 192.168.1.201 \r\n

    \r\n

    982 2008-02-25 12:08:21 1 0

    对于包含在 HEADER 中时,你可以通过 Request.Headers["H1"] 来获取,对于包含在 BODY 中时,你可以用 string 来接收。

    • 已编辑 Skyseer 2014年7月8日 1:49
    • 已标记为答案 Dodu.NET 2014年7月12日 10:01
    2014年7月8日 1:48

全部回复

  • 补充说明:

    之前我说的匿名POST来的数据,我理解上有误,我用抓包程序在服务器端抓取信息,实际上是 header区的信息,程序中该怎么拿到这些数据呢


    MVC 深入研究 博客:http://www.cnblogs.com/DoduNet/
    MvcMovieStore 示例网站:MVC 影视 http://MvcMovie.cn/

    2014年7月7日 15:23
  • 仅从图片上看不出你的请求的具体格式,我以标准的文本表示方式来写一个 POST 请求:

    //----------------------------------------------------------------------------------------------------

    POST http://192.168.1.201:8088/api/cs_datea?SN=xxx&Stamp=99999999HTTP/1.1 /r/n

    Content-Type: text/xml;charset=utf-8 \r\n

    Content-Length: 0 \r\n

    Host: 192.168.1.201 \r\n

    H1: 982 2008-02-25 12:08:21 1 0 \r\n

    \r\n

    上面是你的内容包含在 HTTP HEADER 中时的格式,下面是放置在 BODY 中的格式:

    //----------------------------------------------------------------------------------------------------

    POST http://192.168.1.201:8088/api/cs_datea?SN=xxx&Stamp=99999999HTTP/1.1 /r/n

    Content-Type: text/html;charset=utf-8 \r\n

    Content-Length: 27 \r\n

    Host: 192.168.1.201 \r\n

    \r\n

    982 2008-02-25 12:08:21 1 0

    对于包含在 HEADER 中时,你可以通过 Request.Headers["H1"] 来获取,对于包含在 BODY 中时,你可以用 string 来接收。

    • 已编辑 Skyseer 2014年7月8日 1:49
    • 已标记为答案 Dodu.NET 2014年7月12日 10:01
    2014年7月8日 1:48