C#没有解析http post data的方法?

海会圣贤 2015-06-08 11:39:59
------WebKitFormBoundarybhRlHvHKBvmXJE79
Content-Disposition: form-data; name="_csrf_token_"

1davo7eero_ir
------WebKitFormBoundarybhRlHvHKBvmXJE79
Content-Disposition: form-data; name="action"

post_wholesale_product_action
------WebKitFormBoundarybhRlHvHKBvmXJE79
Content-Disposition: form-data; name="event_submit_do_post"

anything
------WebKitFormBoundarybhRlHvHKBvmXJE79
Content-Disposition: form-data; name="_fmw.w._0.i"


------WebKitFormBoundarybhRlHvHKBvmXJE79
Content-Disposition: form-data; name="_fmw.w._0.s"


------WebKitFormBoundarybhRlHvHKBvmXJE79
Content-Disposition: form-data; name="_fmw.w._0.sr"


------WebKitFormBoundarybhRlHvHKBvmXJE79
Content-Disposition: form-data; name="_fmw.w._0.c"


------WebKitFormBoundarybhRlHvHKBvmXJE79
Content-Disposition: form-data; name="_fmw.w._0.m"


------WebKitFormBoundarybhRlHvHKBvmXJE79
Content-Disposition: form-data; name="_fmw.w._0.me"


------WebKitFormBoundarybhRlHvHKBvmXJE79
Content-Disposition: form-data; name="_fmw.w._0.r"


POST DATA如上,有没有办法,像使用Request那样根据上面的字符串获取到对应的键值对?
...全文
531 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
海会圣贤 2015-10-10
  • 打赏
  • 举报
回复
引用 11 楼 ajianchina 的回复:
[quote=引用 10 楼 zhang116868 的回复:] 后来找到了解决方案,我写了一篇文章:WeOnlyDo.Server服务器介绍,有简单的介绍。
看了,写得挺好的,收藏了,你有进步。[/quote] 谢谢
ajianchina 2015-10-10
  • 打赏
  • 举报
回复
引用 10 楼 zhang116868 的回复:
后来找到了解决方案,我写了一篇文章:WeOnlyDo.Server服务器介绍,有简单的介绍。
看了,写得挺好的,收藏了,你有进步。
海会圣贤 2015-10-10
  • 打赏
  • 举报
回复
后来找到了解决方案,我写了一篇文章:WeOnlyDo.Server服务器介绍,有简单的介绍。
xuzuning 2015-06-08
  • 打赏
  • 举报
回复
自己写段代码不就行了? 在
------WebKitFormBoundarybhRlHvHKBvmXJE79
Content-Disposition: form-data; name="_csrf_token_"
 
1davo7eero_ir
中 ------WebKitFormBoundarybhRlHvHKBvmXJE79 是字段分隔符,每次传输都可能不一样,但在你没贴出的部分有声明,看一下就知道 Content-Disposition: form-data; name="_csrf_token_" 表示一个变量,你关心的只是 name 的值 在两对 \r\n 之后是正文,也就是那个 1davo7eero_ir,是变量的值 该区域直到下一个分隔符出现处结束
  • 打赏
  • 举报
回复
http://blog.csdn.net/starfd/article/details/45393089
await Request.Content.ReadAsMultipartAsync(provider);  
  
        // This illustrates how to get the file names.  
        foreach (MultipartFileData file in provider.FileData)
可以查下MVC源代码是如何实现这部分的
海会圣贤 2015-06-08
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
http://www.codeproject.com/Articles/19777/MIME-Compliant-Parser http://www.codeproject.com/Articles/11882/Advanced-MIME-Parser-Creator-Editor
这个好像主要是对邮件进行处理的,里面是有什么工具类还是?
threenewbee 2015-06-08
  • 打赏
  • 举报
回复
http://www.codeproject.com/Articles/19777/MIME-Compliant-Parser http://www.codeproject.com/Articles/11882/Advanced-MIME-Parser-Creator-Editor
tcmakebest 2015-06-08
  • 打赏
  • 举报
回复
看上去结构不复杂,取得文本后解析下不难吧。
  • 打赏
  • 举报
回复
1. 读取http消息头ContentType中的“boundary=”后边的信息,记为 boundary 变量。 2. 读取消息的 ContentEncoding 编码格式,记为 Encoding 变量。 3. 将 Encoding.GetBytes("--" + boundary + "\r\n") 记为参数分隔标志。 最后一个参数结束标志是 Encoding.GetBytes("--" + boundary + "--\r\n") ,比参数分隔标志正好多两个减号。 4. 将 Encoding.GetBytes("Content-Disposition: form-data; name=\"") 记为参数说明行的开始标志,查找name后边的参数名。 5. 在4.之后是换行回车之后,然后是读取下一个参数分隔标志之前的参数的内容(byte[ ]格式的内容)。
  • 打赏
  • 举报
回复
流程规则是这样的: 1. 读取http消息头ContentType中的“boundary=”后边的信息,记为 boundary 变量。 2. 读取消息的 ContentEncoding 编码格式,记为 Encoding 变量。 3. 将 Encoding.GetBytes("--" + boundary + "\r\n") 记为参数分隔标志。 4. 5. 将 Encoding.GetBytes("--" + boundary + "--\r\n") 记为最后一个参数的结束标志。 4. 将 Encoding.GetBytes("Content-Disposition: form-data; name=\"") 记为参数说明行的开始标志,查找这一行中的参数名。 5. 在4.之后是换行回车之后,然后是参数的内容(byte[ ])。 实际上这是很简单的解析。只不过要注意,要使用二进制 byte 方式来匹配参数的“起止”和“值”的位置,千万不要把输入做为 unicode 字符串来处理。
  • 打赏
  • 举报
回复
自己写一个呗。五六十行代码即可。 给你搜了两个文章,可以参考一下: http://blog.csdn.net/flymorn/article/details/6769722 http://stackoverflow.com/questions/7460088/reading-file-input-from-a-multipart-form-data-post
超级小小 2015-06-08
  • 打赏
  • 举报
回复
你这个是upload文件吧。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧