【问题标题】:How to pass GET parameters in curl PHP如何在 curl PHP 中传递 GET 参数
【发布时间】:2018-03-25 06:57:31
【问题描述】:

我是 PHP 开发的新手。我正在使用CURL 打电话给我的WEB API。作为一个新手,我发现很难理解事情。

我的 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 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;

但我不知道它是否有效

任何帮助将不胜感激。

【问题讨论】:

  • 尝试自己学习。
  • 116.xx.xx.xx:xxxx/api/meters/GetByMsn/?msn=$value_msn 使用“?”,搜索其余部分
  • @DessaugesAntoine 不能使用?,因为参数像路径一样传递
  • @MasivuyeCokile 我已经对其进行了研究,并且在我的问题中也提到参数像路径而不是查询一样传递
  • + $msn + php concat by + 如何?采用 。运算符来 cocat 字符串

标签: php json curl php-curl


【解决方案1】:

试试这个,看看它是否有效:

$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}';

【讨论】:

    【解决方案2】:

    所以经过大量搜索后,我设法得到了回复。连接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();
    

    【讨论】:

      猜你喜欢
      • 2020-01-28
      • 2021-12-06
      • 2018-07-08
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      相关资源
      最近更新 更多