2017-10-13 61 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();