gpt4 book ai didi

apache - 将 CGI 参数传递给 Windows 上 Apache 中的可执行文件

转载 作者:行者123 更新时间:2023-12-02 06:45:16 25 4
gpt4 key购买 nike

我的印象是我可以将任何旧的可执行程序放在 Apache 的 cgi-bin 目录中,并将其用作 CGI 脚本。具体来说,如果我有一个 C# 程序

static class TestProg
{
static void Main(string[] args)
{
Console.Write("Content-type: text/plain\r\n\r\n");
Console.WriteLine("Arguments:");
foreach (string arg in args)
Console.WriteLine(arg);
}
}

然后转到 http://example.com/cgi-bin/TestProg?hello=kitty&goodbye=world 然后查询字符串 hello=kitty&goodbye=world 将作为第一个参数传递给 main,所以我的页面应该看起来像

Arguments:
hello=kitty&goodbye=world

不幸的是,我的查询参数都没有被传递;页面加载并仅打印 Arguments:,后面没有任何内容。

那么如何将我的查询参数传递给这个程序呢?

最佳答案

参数不会在命令行上传递 - 相反,apache 在调用 cgi 程序之前设置环境变量 (http://httpd.apache.org/docs/2.0/howto/cgi.html#behindscenes)。

您可以访问包含查询字符串文本的环境变量“QUERY_STRING”。

 String queryString = System.Environment.GetEnvironmentVariable("QUERY_STRING");

然后您需要自己解析 queryString。

但是,POST 数据通过 STDIN 传递,因此您需要使用 Console.In 来处理它。

关于apache - 将 CGI 参数传递给 Windows 上 Apache 中的可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1374052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com