在ASP.NET中创建接受CGI变量的HTTP POST方法

在ASP.NET中创建接受CGI变量的HTTP POST方法,asp.net,http-post,Asp.net,Http Post,我有一个ASP.NET(.NET v4)web应用程序在IIS 7.5上运行。我有一个第三方希望将信息传递给我的系统。它们支持使用HTTP POST传递此信息,它们提供的信息是: “此方法只需调用服务器上的脚本并传递每个脚本 字段作为CGI变量。当您收到服务器上的数据时 应该在一行上单独返回“1”以表示成功。任何 否则将在我们的服务器上生成一个将被调查的错误 要设置此传递方法,我们需要一个要发布到的URL。我们可以使用 HTTP或HTTPS。“ 我的web应用程序目前实现了许多WCF服务,但由于

我有一个ASP.NET(.NET v4)web应用程序在IIS 7.5上运行。我有一个第三方希望将信息传递给我的系统。它们支持使用HTTP POST传递此信息,它们提供的信息是:

“此方法只需调用服务器上的脚本并传递每个脚本 字段作为CGI变量。当您收到服务器上的数据时 应该在一行上单独返回“1”以表示成功。任何 否则将在我们的服务器上生成一个将被调查的错误

要设置此传递方法,我们需要一个要发布到的URL。我们可以使用 HTTP或HTTPS。“

我的web应用程序目前实现了许多WCF服务,但由于我不知道传入的变量是什么,因此无法定义特定的契约。我可以创建一个正常的aspx页面,他们可以发布到该页面,然后读取传递的每个参数并进行适当的处理

如果我这样做,如何发回包含“1”的行


我还需要做些什么才能使这个HTTP POST兼容。

上次我不得不处理类似的情况时,我使用了一个标准的ASPX页面,它运行得非常好

在我的例子中,输出是XML,所以我必须确保我更改了输出mime类型以匹配我的例子中的“text/XML”。。“文本/普通”我猜在你的

无论如何,请在下面输入C#sharp代码,并确保您的ASPX文件中只有最上面的一行,即:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="register.aspx.cs" Inherits="myservices.register" ContentType="text/xml" %>
如果您需要使用回车符,那么我相信您可以在system.environment对象中使用回车符属性,但是我手头没有文档来查找它。然而,这应该让你开始

要记住的最重要的事情是确保aspx没有输出任何内容,甚至连回车都没有


我以前在我的博客上写过一篇文章,如果你想阅读的话,如何使用这种方法为Cisco IP电话生成电话目录。您可以在这里找到它:

只需获取http POST变量即可获取数据;至于返回1,我想返回它和响应一样简单;
    protected void Page_Load(object sender, EventArgs e)
    {

      Response.Clear();
      Response.ContentType = "text/plain";

      //Get your CGI variables here...  you will have to get them to tell you what to expect
      string myparam = (string)Request.QueryString["myparam"];

      //do what ever you need here with your variables      

      Response.Write("1");
      Response.End();

    }// End page load handler