如何从C#中的Stream对象读取帖子数据

时间:2016-03-24 00:09:21

标签: c# asp.net-mvc http-post

我曾经在mvc应用程序中有一个方法,可以从post请求中读取值。它是这样的。

[HttpPost]
public ActionResult ResponseFromExternalParty(FormCollection form)

我能够将值读作

var authCode = form["auth_code"];

现在我需要在另一个不是mvc应用程序的应用程序中执行相同的操作, 因此我无法使用FormCollection对象。有人告诉我使用Stream对象,所以我的新方法看起来像

 public void ResponseFromExternalParty(Stream form)

我无法理解如何从此Stream对象中读取帖子数据。如果我必须读取查询字符串数据,我知道我可以使用像

这样的东西
HttpUtility.ParseQueryString();

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这个答案只针对那些会像我一样困惑的家伙。显然ParseQueryString功能也可以读取发布数据的主体。这有点令人困惑,因为我认为ParseQueryString只是将查询字符串解析为NameValueCollection。以下是如何从Stream对象中读取发布的数据。

   public void ResponseFromExternalParty(Stream form) {
   var requestBody = new StreamReader(form).ReadToEnd();
   var nameValueCollection = HttpUtility.ParseQueryString(requestBody);

   var authCode = nameValueCollection["auth_code"];
   }