从ASP.NET C#中的HTTP POST请求接收二进制数据

时间:2009-12-20 21:18:52

标签: c# asp.net http-post

这应该是非常微不足道的,但由于理由无法找到它。我将一些二进制数据发布到ASP.NET中作为multipart / form-data的表单,我可以看到请求是通过查看Request.InputStream来接收的:

  

------------------------------- 7cf2a327f01ae Content-Disposition:form-data;   NAME = “DeviceID1”

     

一些二进制数据

     

------------------------------- 7cf2a327f01ae Content-Disposition:form-data;   NAME = “DeviceID2”

     

一些二进制数据   ...

但是我找不到如何将每个部分检索为Request.Form(或Request.Params)集合的一部分。可能有什么不对?一个解决方法是使用文件名然后从Request.Files检索,但我想知道获取内容的正确方法是什么。感谢。

2 个答案:

答案 0 :(得分:1)

Request.Files是检索发布到服务器的二进制数据的唯一方法。

答案 1 :(得分:0)

我发现一个问题是换行符,请求应该使用适当的分隔符终止,如下所示:

-------------------------------7cf2a327f01ae
Content-Disposition: form-data; name="DeviceID1"

Some binary data

-------------------------------7cf2a327f01ae 
Content-Disposition: form-data; name="DeviceID2"

Some binary data
-------------------------------7cf2a327f01ae 

现在键出现在Request.Form中,但是这个集合的类型是字符串,所以我决定使用文件名,然后从Request.Files获取。或者我可以完全手动解析整个请求内容。