需要C#使用HttpRequest检索表单字段值方面的帮助吗

需要C#使用HttpRequest检索表单字段值方面的帮助吗,c#,httprequest,C#,Httprequest,我正在尝试编写一个C#cgi脚本,用于检索我编写的HTML页面上输入字段表单的值。我阅读了关于HttpRequest的文档,但仍然无法编译代码 我一直在谷歌搜索,但我尝试过的都没有效果。我有一个非常基本的hello world C#cgi脚本,可以正常工作。下面是未编译的代码 using System; using System.Web; using System.Web.UI; using System.Collections.Generic; using System.Linq; using

我正在尝试编写一个C#cgi脚本,用于检索我编写的HTML页面上输入字段表单的值。我阅读了关于HttpRequest的文档,但仍然无法编译代码

我一直在谷歌搜索,但我尝试过的都没有效果。我有一个非常基本的hello world C#cgi脚本,可以正常工作。下面是未编译的代码

using System;
using System.Web;
using System.Web.UI;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
    static void Main(string[] args)
    {
        Console.WriteLine("Content-Type: text/html");
        Console.WriteLine("");
        Console.WriteLine("<HTML>");
        Console.WriteLine("<HEAD>");
        Console.WriteLine("<BODY>");
        Console.WriteLine("<H3>Hello from a csharp compiled CGI script</H3>");
        string mydata = Request["mydata"];
        Console.WriteLine("</BODY>");
        Console.WriteLine("</HTML>");
    }
    }
}
使用系统;
使用System.Web;
使用System.Web.UI;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
名称空间控制台EAPP1
{
班级计划
{
静态void Main(字符串[]参数)
{
Console.WriteLine(“内容类型:text/html”);
控制台。写线(“”);
控制台。写线(“”);
控制台。写线(“”);
控制台。写线(“”);
WriteLine(“来自csharp编译的CGI脚本的Hello”);
字符串mydata=Request[“mydata”];
控制台。写线(“”);
控制台。写线(“”);
}
}
}
我收到如下错误消息:
错误CS0103:名称“Request”在当前上下文中不存在

我认为您正在寻找这种类型的请求

var request = System.Net.WebRequest.Create(requestPath);
            request.Timeout = 12000;
            request.Method = "GET";
            request.Headers.Add("TRN-Api-Key", apiKey);
            request.ContentType = "application/json";

            try
            {
                using (var response = request.GetResponse())
                {
                    using (var stream = response.GetResponseStream())
                    {
                        var reader = new StreamReader(stream, System.Text.Encoding.UTF8);
                        jString = reader.ReadToEnd();
                    }
                }

            }
            catch (System.Net.WebException e2)
            {
                //MessageBox.Show(e2.Message);
            }

我不确定你到底在寻找什么类型的数据。这里的请求是专门针对JSON的。您也可以由其他用户参考此帖子

您的应用程序无法接收实际的HTTP请求。如果您希望发出一个请求,然后解析响应,那么Jim提供的答案是好的,但是,否则您可能会考虑创建一个API项目并将值注销到console/file


CGI(公共网关接口)通常用于侦听请求。试想一下,它也写得很好,可以让你解析出诸如“代码>请求”(MyDATA)

< P>如其他人所说的,<代码>请求<代码>是ASP.NET网页上的专有东西,它甚至不存在于普通控制台程序中,甚至那些实现CGI服务器的程序也不存在。code>HttpRequest也没有用,因为CGI只通过STDIN、STDOUT和环境变量进行交互


特别是,POST数据通常通过请求正文发送,在CGI标准中,正文通过STDIN馈送到程序,因此您可以使用
Console.read()
函数族读取。其他一些环境变量也可以帮助您获得有关正在服务的请求()的更多信息。

您会遇到错误,因为
request
不是实例化对象,也不是应用程序中的静态类。我相信你可能对你想要实现的目标有点困惑,我们当然需要更多的信息来帮助你。如果您试图向外部web服务发出请求,您可能需要查看以下内容:使用wireshark或fiddler等嗅探器,将cgi中的第一个请求与当前的c#应用程序进行比较。让c#中的请求看起来像cgi。为什么不使用asp.net呢?OP似乎在尝试接收传入的请求,而不是发送出站的请求。该程序实际上是一个简单的cgi服务器,只要web服务器将请求转发给它,它就完全能够接收请求。