如何在 curl PHP 中传递 GET 参数
How to pass GET parameters in curl PHP
我是 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
和 URL 给出响应。我得到的回复是
{
"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
参数。为此,我搜索了很多文章,但都找到了一种将参数传递为 and related link 的方法。
我正在考虑的一种方法是将参数直接传递给 URL Like:
$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;
但是不知道能不能用
非常感谢任何帮助。
试试这个,看看它是否有效:
$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}';
经过大量搜索,我设法得到了回复。连接 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();
我是 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
和 URL 给出响应。我得到的回复是
{
"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
参数。为此,我搜索了很多文章,但都找到了一种将参数传递为
我正在考虑的一种方法是将参数直接传递给 URL Like:
$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;
但是不知道能不能用
非常感谢任何帮助。
试试这个,看看它是否有效:
$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}';
经过大量搜索,我设法得到了回复。连接 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();