0

アプリケーションが1つあります(チェックポイントファイアウォール)

これにより、変数からフォーマットにURLが送信され、GETメソッドを使用してリクエストが形成されます。

https://api.example.com/http/sendmsg?api_id=$APIID&user=
$USERNAME&password=$PASSWORD&to=$PHONE&text=$MESSAGE

ただし、使用したいWebサイトは、次のソースで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>

SMSテキストメッセージを送信していると推測できるので、URLの形式を好きなだけ変更できます。

POSTメソッドを使用してURLをフォーマットしたり、リクエストを翻訳できる中間Webページを作成したりする方法はありますか?

ありがとうございました

編集

だから、これは私が考えていたようなものでした

$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));

このスクリプトはWebサイトによってホストされているため、アプリケーションAはそのGETメソッドを使用して変数を提供でき、スクリプトはそれらをpostを介してアプリケーションBに再投稿します。しかし、それは機能せず、応答から結果が得られませんか?

4

2 に答える 2

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);
于 2012-11-19T13:22:50.697 に答える
0

POSTをGETとして送信することはできません。これらは異なるメソッドであり、POSTでは、GETリクエストで使用できないリクエストとともに変数を送信する必要があります。

理論的には、最初のGET要求を受け取り、適切なPOST要求を形成して、それをターゲットサーバーに送信する仲介者を作成できます。これの実際の実装は、この質問の範囲外です。

于 2012-11-19T13:12:39.237 に答える