GET和POST方法

时间:2012-11-19 13:11:02

标签: html post methods get

我有一个应用程序(检查点防火墙)

使用GET方法

从变量发送格式化URL以形成请求
https://api.example.com/http/sendmsg?api_id=$APIID&user=
$USERNAME&password=$PASSWORD&to=$PHONE&text=$MESSAGE

我想要使用的网站是如何使用带有以下来源的POST方法的基本表单。

<html>
    <form method="post">
        Number:<input type="text" name="number"/><br/>
        Message:<textarea cols="40" rows="4" name="message"></textarea><br/>
        <input type="submit" value="send"/>
    </form>
</html>

我可以在理由中尽可能多地更改URL的格式,因为您可以猜测这是发送短信。

有没有办法用POST方法格式化URL,或者创建一个可以翻译请求的中间网页?

谢谢

修改

所以这就是我想到的那种事情

$number = ($_GET["number"]);
$message = ($_GET["message"]);

//for testing the get method echo variables on screen
echo("Number: " . $number . "<br />");
echo("Message: " . $message . "<br />");

//use curl to post variables to second website
$vars = "number-" . $number . "&message=2 . message;
$ch = curl_init( '10.43.23.53' );
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $vars);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec( $ch );

print_r(curl_getinfo($ch));

此脚本由网站托管,因此应用程序A可以使用其GET方法提供变量,脚本将通过post将其重新发布到应用程序B.但它不起作用,我没有从响应中得到任何结果?

2 个答案:

答案 0 :(得分:1)

$apiKey = 'your-api-key-here';
$user = 'your-username-here';
$password = 'your-password-here';
$number = isset($_POST['number']) ? $_POST['number'] : null;
$message = isset($_GPOST['message']) ? $_POST['message'] : null;

$url = sprintf('https://api.example.com/http/sendmsg?api_id=%s&user= %s&password=%s&to=%s&text=%s',
    $apiKey, $user, $password, urlencodee($message)
);

// validating message etc. left to OP

$response = file_get_contents($url);

答案 1 :(得分:0)

您将无法将POST作为GET发送,它们是不同的方法,并且POST要求使用GET请求中不可用的请求发送变量。

理论上,您可以创建一个中介,它接受初始GET请求并形成合适的POST请求并将其发送到目标服务器。实际执行此问题超出了本问题的范围。