2010-10-05 170 views
0

我不知道我是否在问正确的问题。响应HTTP POST

我们有一个网络应用程序,我们正在尝试第三方POST。我们正在为他们创建一个特殊的登录页面,他们可以通过POST提交我们需要的数据。

我不知道如何回应他们的请求,我认为我处理为一个传入的HttpRequest。我是否在PageLoad或其他事件中处理他们的数据?在哪里/如何包含这些数据?

我是否必须使用HttpListener或ProcessRequest处理程序,或者是什么?

在这里或谷歌上搜索时,会发现很多关于如何发布到其他网站的结果,但似乎无法找到关于如何成为“其他”网站并处理收到的POST数据的相关网站。

同样,我不确定我是否在问这个问题。

编辑:我找到了Page.ProcessRequest Method in the MSDN library,但问说:“你不应该调用此方法”

谢谢!

回答

0

最好是使用IHttpHandler,但可以使用标准的ASP.NET页面来做你想做的事情。使用PageLoad是好的,您可以访问RequestResponse属性,这些属性为您提供处理HTTP请求所需的所有内容。例如,要获取表单参数,可以使用Request["input1"]获取名称为“input1”的表单输入值(查询字符串,表单发布或cookie)。

你需要做什么来回应这个帖子的要求?你需要返回什么样的数据?在此之前,难以进一步提供帮助。

+0

那么,我们的应用程序允许我们自己的用户输入数据。我们希望第三方能够将自己的数据输入到我们的网站,而不是我们为他们输入数据。为什么要这样做?因为他们收集了我们自己的Web应用程序所需的数据的超集。这样,他们只会向我们发布我们网络应用程序所需的数据子集。他们只会自动向我们传递数据,而不是通过我们自己的表单输入。验证和消毒当然会在这些数据上进行。 – Marc 2010-10-05 00:52:49

+0

@Marc,您的用户当前如何通过POST输入数据? – 2010-10-05 01:05:45

+0

@Marc,所以第三方正在编写HTML页面,但表单元素上的'action'指向你的服务器? – 2010-10-05 01:49:38

1

你真的需要看看ASP.NET的基础知识。即使这是一个IHttpHandler最适合的情况,我建议在这种情况下使用.aspx页面,因为它是开始学习的最佳位置,您可以稍后转移到IHttpHandler。

如果数据发布在application/x-www-form-urlencoded或multipart/form-data(网页上的表单使用的两种格式 - 如果他们还没有告诉你他们使用什么格式,那么它是可能是其中的一个),Request.Form属性(实际上是一个属性的属性)将充当发送数据的字典(例如,如果它们有一个名为“foo”的字段,那么Request.Form["foo"]将以字符串的形式返回它的值)。否则,你会想使用Request.InputStream并从中读取。尽管后者稍微有点牵强。