2017-10-13 91 views
0

我是PHP開發的新手。我正在致電CURL致電我的WEB API。作爲一個新手,我發現很難理解的東西。如何通過curl傳遞GET參數PHP

如何我的API工作

API_URL是http://localhost:14909/api/meters/GetByMsn/002999000077/2017-10-11T12:16:20

它需要一個meter serial numberdata time並給出了authorizing的URL的響應。我得到的迴應是

{ 
"data": { 
    "Response": "No" 
    } 
} 

我想做

什麼現在在PHP我使用CURL發出請求。該請求很簡單,因爲它需要當前選擇meter serial numbercurrent date time也應該採取授權密鑰。

我做了什麼至今

下面是代碼到目前爲止,我已經做了

if(isset($_REQUEST['selected_meters'])) 
    { 
     $m = MetersInventoryStore::findOne($_REQUEST['selected_meters']); 

     $msn = $m->meter_serial; // current selected meter serial number is saved 

     $date_time = str_replace(' ','T',date('Y-m-d H:i:s')); // current date time 

     $api_url = 'http://116.xx.xx.xx:xxxx/api/meters/GetByMsn/'; // my base URL 

     $curl = curl_init($api_url); 

     curl_setopt($curl,CURLOPT_RETURNTRANSFER, CURLOPT_HTTPHEADER, array('Authorization: MY_KEY')); // setting the authorization key in header. 


     exit(); 

    } 

現在我想送meter serial numberdate time參數。爲此,我搜索了很多文章,但是我找到了一種方法來傳遞參數queryrelated link

一種方法我想到的是傳遞參數直接到URL一樣:

$api_url = 'http://116.xx.xx.xx:xxxx/api/meters/GetByMsn/[$msn]/[$date_time]'; 

OR

$api_url = 'http://116.xx.xx.xx:xxxx/api/meters/GetByMsn/' + $msn + '/'+$date_time; 

但我不知道或將它的工作原理並不

任何幫助將不勝感激。

+0

嘗試和學習自己。 – urfusion

+0

http://116.xx.xx.xx:xxxx/api/meters/GetByMsn /?msn = $ value_msn 使用「?」,搜索其餘的 –

+0

@DessaugesAntoine不能使用'?'作爲參數是通過像路徑 – faisal1208

回答

0

嘗試了這一點,看看它的工作原理:

$api_url = 'http://116.xx.xx.xx:xxxx/api/meters/GetByMsn/${msn}/${date_time}'; 

$api_url = 'http://116.xx.xx.xx:xxxx/api/meters/GetByMsn/{$msn}/{$date_time}'; 
0

所以很多搜索後我設法得到迴應。連接URL中的兩個參數並更改curl_setopt

變化:

$api_url = 'http://116.xx.xx.xx:xxxx/api/meters/GetByMsn/'; // my base URL 

$api_url = 'http://116.xx.xx.xx:xxxx/api/meters/GetByMsn/'.$msn . '/' . $date_time; // my base URL 

而且

curl_setopt($curl,CURLOPT_RETURNTRANSFER, CURLOPT_HTTPHEADER, array('Authorization: MY_KEY')); // setting the authorization key in header. 

curl_setopt($curl CURLOPT_HTTPHEADER, array('Authorization: MY_KEY')); // Removed the CURLOPT_RETURNTRANSFER 

然後

$curl_response = curl_exec($curl); 
     print_r($curl_response); 
     /* print_r($msn); 
     echo $date_time;*/ 
     //echo date('Y-m-d H:i:s'); 
     exit();