【问题标题】:Responding to HTTP POST响应 HTTP POST
【发布时间】:2010-10-05 00:31:46
【问题描述】:

我不确定我问的问题是否正确。

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

我不确定如何响应他们的请求,我假设我将其作为传入的 HttpRequest 处理。我是否在 PageLoad 或其他事件中处理他们的数据?这些数据包含在哪里/如何包含?

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

在此处或在 Google 上进行搜索会发现很多关于如何 POST 到另一个站点的结果,但似乎无法找到有关如何成为那个“其他”站点并处理传入 POST 数据的相关站点。

再说一次,我不确定我问的对不对。

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

谢谢!

【问题讨论】:

    标签: c# asp.net post httprequest


    【解决方案1】:

    您确实需要了解ASP.NET 的基础知识。即使这是最适合 IHttpHandler 的情况,我还是建议在这种情况下使用 .aspx 页面,因为它是开始学习的最佳场所,您可以稍后再转到 IHttpHandler。

    如果数据发布在 application/x-www-form-urlencoded 或 multipart/form-data (网页上的表单使用的两种格式 - 如果他们没有告诉你他们使用的是什么格式,那么它可能是这两者之一),Request.Form 属性(实际上是属性的属性)将充当发送数据的字典(例如,如果它们有一个名为“foo”的字段,那么Request.Form["foo"] 将返回它的值作为字符串)。否则,您将需要使用 Request.InputStream 并从中读取。不过,后者涉及的更多一点。

    【讨论】:

      【解决方案2】:

      最好使用IHttpHandler,但也可以使用标准的 ASP.NET 页面来做您想做的事情。使用PageLoad 很好,您可以访问RequestResponse 属性,它们为您提供处理HTTP 请求所需的一切。例如,要获取表单参数,可以使用Request["input1"] 获取名称为“input1”的表单输入值(查询字符串、表单帖子或cookie)。

      您需要做什么才能响应此发布请求?您需要返回什么样的数据?在得到解答之前,很难进一步提供帮助。

      【讨论】:

      • 好吧,我们的应用程序允许我们自己的用户输入数据。我们希望第三方能够将他们自己的数据输入我们的网站,而不是我们为他们输入数据。为什么要这样做?因为他们在他们自己的网络应用程序上收集了我们需要的数据的超集。这样,他们只向我们发布我们的网络应用程序所需的数据子集。他们将只是自动将数据传递给我们,而不是通过我们自己的表单条目。当然会对这些数据进行验证和清理。
      • @Marc,如果不是通过 POST,您的用户目前如何输入数据?
      • @Marc,所以第 3 方正在编写 HTML 页面,但表单元素上的 action 指向您的服务器?
      猜你喜欢
      • 1970-01-01
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多