如何使用PHP向URL提交HTTP POST请求?

时间:2014-12-19 12:28:31

标签: php http-post httprequest sms-gateway

我想将一些数据作为HTTP POST请求发送到特定的URL。我用Google搜索并阅读了几个小时,但我仍然坚持编写实际的代码。

我可以创建我需要的完整网址,如果我回显下面的sms_url变量并且手动将其粘贴到浏览器地址栏中,则会成功发送短信。我的问题是如何在点击按钮后让PHP自动执行此操作?

    <?php
    $customer = '4512121212';
    //Create variable $sms_url to send sms to customer
    // The neccesary variables
    $sms_message = ("this is a test");
    $sms_url = "http://www.theurl.com/sms/";
    $sms_url .= "?message=" . urlencode($sms_message); //messages
    $sms_url .= "&recipient=$customer"; // Recipient
    $sms_url .= "&username=x"; // Username
    $sms_url .= "&password=x"; // Password
    $sms_url .= "&from=" . urlencode("company name"); // Sendername
    $sms_url .= "&utf8=1"; //UTF8 encoded
    echo $sms_url. "<br>";

now what??
    ?>

更新和修改

我用curl测试过但是没有用?

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $sms_url);
$content = curl_exec($ch);
var_dump($content);
?>

对可能出错的任何建议?

更新并已解决

以下代码有效。

$curl = curl_init($sms_url);
$errmsg  = curl_error( $curl );
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($curl);
curl_close ($curl);  
?>

1 个答案:

答案 0 :(得分:-3)

<强>更新 执行GET请求而不是POST请求(根据您的问题,我可以假设GET请求确实有效)您可以这样做,而无需重定向用户:

http_get($sms_url);

如果您仍在寻找帖子请求,可以查看http_post_data()