我是PHP
开发的新手。我正在CURL
致电我的WEB API
。作为一个新手我发现很难理解。
我的API如何运作
API_URL为http://localhost:14909/api/meters/GetByMsn/002999000077/2017-10-11T12:16:20
需要meter serial number
和data time
,并按authorizing
提供回复。我得到的回应是
{
"data": {
"Response": "No"
}
}
我想做什么
现在在PHP
我正在使用CURL发出请求。请求很简单,因为它需要当前选定的meter serial number
和current 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 number
和date time
个参数。为此,我搜索了很多文章,但我发现了一种将参数传递为query和related link的方法。
我想到的一种方法是将参数直接传递给URL Like:
$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 :(得分: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}';
答案 1 :(得分: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();