上的GET請求在試圖解決我張貼在這個問題上的問題,任何問題:是否有處理POST請求的服務器
Is it possible to send POST parameters to a CGI script using a system() call?
迄今唯一成功解決的問題是誘騙環境認爲請求是GET。我通過將POST參數轉換爲查詢字符串,將該字符串保存在默認環境變量中,然後更改環境變量來告知服務器此請求用於GET的方法。
$ENV{'QUERY_STRING'} = $long_parameter_string . '&' . $ENV{'QUERY_STRING'};
$ENV{'REQUEST_METHOD'} = 'GET';
system {$perl_exec} $cgi_script;
我基本上欺騙CGI模塊從QUERY_STRING環境變量,而不是從標準輸入,它會試圖讀取POST請求讀取。
此方法似乎工作到目前爲止,但我擔心意想不到的影響。
我的問題是,你是否看到任何潛在的問題呢?
要說清楚,我並不是試圖就這是否是「正確」的事情展開哲學爭論。我想知道可能出現並需要測試的潛在問題。這只是我遇到的一個奇怪的現實世界問題的實用解決方案。 – 2009-12-07 16:05:38
我改變了這個社區維基,因爲我不認爲這必然是一個正確的答案。 – 2009-12-07 16:12:31
您似乎已經忽略了將流水管打開並寫入流程的建議。如果你想測試一個POST,停止嘗試強制system()進入它。 Perl工具箱中還有許多其他工具。 – 2009-12-07 16:26:02