簡體   English   中英

如何在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 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參數。 為此,我搜索了許多文章,但所有文章都找到了一種將參數作為查詢相關鏈接傳遞的方法。

我正在考慮的一種方法是將參數直接傳遞給URL,例如:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM