我曾经在mvc应用程序中有一个方法,可以从post请求中读取值。它是这样的。
[HttpPost]
public ActionResult ResponseFromExternalParty(FormCollection form)
我能够将值读作
var authCode = form["auth_code"];
现在我需要在另一个不是mvc应用程序的应用程序中执行相同的操作, 因此我无法使用FormCollection对象。有人告诉我使用Stream对象,所以我的新方法看起来像
public void ResponseFromExternalParty(Stream form)
我无法理解如何从此Stream对象中读取帖子数据。如果我必须读取查询字符串数据,我知道我可以使用像
这样的东西HttpUtility.ParseQueryString();
感谢任何帮助。
答案 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"];
}