怎么在Python中传入GET,POST,COOKIE等数据给PHP CGI?

我想要使用 Python 编写一个 Web服务器 ,但是现在只能发送静态页面

我想要使它能发送 动态页面 ,但我不要知道怎么在 Python 给 php-cgi 传 get,post 之类的数据

例如

POST https://example.com HTTP/1.1
Host: example.com

a=1&b=2

我想要通过 Python 将这些 POST的数据 传给 a.php

a.php:

<?php
echo "\r\npost:"; 
print_r($_POST); 
  
echo "\r\ncookie:"; 
print_r($_COOKIE);
?>

谢谢 (第一次提问,可能写的不怎么好

解决了,使用环境变量

python执行cmd

set REDIRECT_STATUS=true 
SET REQUEST_METHOD=POST
SET QUERY_STRING=ie=UTF-8^&wd=hello^&fsdf=fsdfaf
set HTTP_COOKIE=PHPSESSID=123;PHPSESfsd=fsdfsafa
SET CONTENT_TYPE=application/x-www-form-urlencoded
SET CONTENT_LENGTH=16
SET PATH_TRANSLATED=D:\phpstudy_pro\Extensions\php\php7.3.4nts\php-cgi.exe
SET GATEWAY_INTERFACE=CGI/1.1
SET SERVER_NAME=localhost
SET SERVER_PORT=80
set SCRIPT_FILENAME=C:\Users\FengZi\Desktop\index.php
echo test=hello world | D:\phpstudy_pro\Extensions\php\php7.3.4nts\php-cgi.exe 

test=hello world为post数据 QUERY_STRING为get数据

要在 Python 中实现动态页面,您可以使用 WSGI(Web Server Gateway Interface)来将 Web 服务器与 Python 应用程序连接起来。WSGI 允许您在 Web 服务器和 Python 应用程序之间传递数据,包括 GET 和 POST 请求的数据。

对于您的问题,您可以使用 Python 的内置 urllib 模块来发送 POST 请求,将数据传递给 a.php。以下是一个示例代码:

import urllib.parse
import urllib.request

# POST 数据
data = {'a': 1, 'b': 2}
data = urllib.parse.urlencode(data).encode('utf-8')

# 发送 POST 请求
url = 'http://example.com/a.php'
req = urllib.request.Request(url, data)
resp = urllib.request.urlopen(req)
result = resp.read().decode('utf-8')

# 输出结果
print(result)


这将发送一个名为 a.php 的 POST 请求,带有 a=1 和 b=2 的数据。在您的 a.php 文件中,您可以使用 $_POST 变量来访问这些数据。

请注意,这只是一个简单的示例代码,需要根据您的实际情况进行调整。您可能需要添加更多的代码来处理错误、处理响应等。