【问题标题】:Receiving binary data from HTTP POST Request in ASP.NET C#从 ASP.NET C# 中的 HTTP POST 请求接收二进制数据
【发布时间】:2009-12-20 21:18:52
【问题描述】:

这应该很琐碎,但由于原因找不到。我将一些二进制数据作为 multipart/form-data 发布到 ASP.NET 中的表单,我可以通过查看 Request.InputStream 看到请求已收到:

-------------------7cf2a327f01ae 内容处置:表单数据; name="设备ID1"

一些二进制数据

-------------------7cf2a327f01ae 内容处置:表单数据; 名称="设备ID2"

一些二进制数据 ...

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

【问题讨论】:

    标签: c# asp.net http-post


    【解决方案1】:

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

    【讨论】:

    • 我发现我的解决方法也不起作用。即使使用帖子数据中的文件名,我仍然得到 Request.Files.Count 为 0。所以尽管我可以看到请求正确进入,但肯定有其他问题。
    • 您使用的是html文件输入还是asp.net文件控件?
    【解决方案2】:

    我发现一个问题是换行符,请求应该用这样的适当分隔符终止:

    -------------------------------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 中获取。或者我可以完全手动解析整个请求内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2014-07-15
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多