简体   繁体   中英

How to make a call to .aspx https from php script from my localhost with xamp?

I am trying to send SMS from my localhost with xamp installed. Requested page is on https and an .aspx page. I am getting error: "HTTP Error 400. The request is badly formed." or blank page only in some cases. Detaisl is as follows :

$url = 'https://www.ismartsms.net/iBulkSMS/HttpWS/SMSDynamicAPI.aspx';
$postArgs = 'UserId='.$username.
    '&Password='.$password.
    '&MobileNo='.$destination.
    '&Message='.$text.
    '&PushDateTime='.$PushDateTime.
    '&Lang='.$Lang;
function getSslPage($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}
$response = getSslPage($all);

echo "<pre>";
print_r($response); exit;

I tried every possible solution/combination found on internet but could not resolve that. The API developers do not have a example for php script. I tried httpful php library and file_get_contents function but getting empty page. Also tried every combination with curl_setup.

I need to call this url without any post data and see the response from it. Instead getting a blank page.

Please note that when I execute the url with all details in browser it works fine.

Can anybody help me in this regard.

Thank you, Usman

First do urlencode over your data as follows:

$postArgs = 'UserId='. urlencode($username.
'&Password='.urlencode($password).
'&MobileNo='.urlencode($destination).
'&Message='.urlencode($text).
'&PushDateTime='.urlencode($PushDateTime).
'&Lang='.urlencode($Lang);

After that two possible solutions. One is using GET .

curl_setopt($ch, CURLOPT_URL, $url . "?" . $postArgs);

Second option is using POST method.

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postArgs);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM