2016-01-21 62 views
1

我正嘗試從安裝了xamp的本地主機發送短信。 請求的頁面位於https和.aspx頁面上。 我收到錯誤:「HTTP錯誤400.請求形成嚴重。」或僅在某些情況下爲空白頁面。 Detaisl如下:如何使用xamp從本地主機的php腳本調用.aspx https?

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

我想互聯網上找到每一個可能的解決方案/組合,但未能解決這個問題。 API開發人員沒有用於php腳本的示例。 我試過httpful php庫和file_get_contents函數,但得到空白頁面。還嘗試了每個與curl_setup的組合。

我需要調用這個URL沒有任何後期數據,並看到它的響應。 取而代之的是一個空白頁面。

請注意,當我在瀏覽器中執行具有所有細節的url時,它工作正常。

任何人都可以在這方面幫助我。

謝謝 烏斯曼

+0

$ all = $ url。「?」。$ postArgs; $ response = getSslPage($ all); –

回答

0

先做urlencode您的數據如下:

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

兩個可能的解決方案之後。一種是使用GET

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

第二種選擇是使用POST方法。

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

謝謝@Sabuj回覆。我嘗試了一些組合,它的工作。如果有人曾經使用過此API,請添加代碼。 –

+0

'code' $ url ='https://www.ismartsms.net/iBulkSMS/HttpWS/SMSDynamicAPI.aspx'; $ data = http_build_query('UserId'=> $ username,'Password'=> $ password,'MobileNo'=> $ destination,'Message'=> $ text,'PushDateTime'=> $ PushDateTime,'Lang '=> $ Lang)); $ requestData = $ url。「?」。$ data;'code' –