gpt4 book ai didi

perl - 如何通过命令行将 POST 和 GET 数据发送到 Perl CGI 脚本?

转载 作者:行者123 更新时间:2023-12-03 12:27:05 24 4
gpt4 key购买 nike

我正在尝试通过命令行参数发送 get 或 post。那是在我通过浏览器测试之前在命令行中测试脚本(服务器有问题)。我尝试在线搜索,我想我可能使用了不正确的术语,因为我什么也没得到。我知道这是可能的,因为我看到有人这样做。我只是不记得它是怎么做到的。

谢谢! :)

最佳答案

要从命令行测试 CGI 程序,您需要伪造服务器为程序创建的环境。 CGI.pm 有一个特殊的离线模式,但我经常发现它更容易不使用,因为我需要为我的程序通常期望的所有其他设置做额外的设置。

根据脚本的实现,这涉及设置许多环境变量,您可以通过伪装成服务器的包装脚本来执行这些操作:

 #!/bin/bash

export HTTP_COOKIE=...
export HTTP_HOST=test.example.com
export HTTP_REFERER=...
export HTTP_USER_AGENT=...
export PATH_INFO=
export QUERY_STRING=$(cat query_string);
export REQUEST_METHOD=GET

perl program.cgi

如果您为 POST 请求执行此操作,则环境略有不同,您需要在标准输入上提供 POST 数据:
 #!/bin/bash

export CONTENT_LENGTH=$(perl -e "print -s q/post_data/");
export HTTP_COOKIE=...
export HTTP_HOST=test.example.com
export HTTP_REFERER=...
export HTTP_USER_AGENT=...
export PATH_INFO=...
export QUERY_STRING=$(cat query_string);
export REQUEST_METHOD=POST

perl program.cgi < post_data

您可以根据需要进行设计,并且每次要测试程序时,都可以更改 query_string 或 post_data 文件中的数据。如果您不想在 shell 脚本中执行此操作,那么制作包装 Perl 脚本同样容易。

关于perl - 如何通过命令行将 POST 和 GET 数据发送到 Perl CGI 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2224158/

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