如何在外部URL上使用GET

时间:2014-02-06 01:00:52

标签: php api get

我正在使用从GET请求

返回JSON的API

例如

https://api.domain.com/v1/Account/{auth_id}/Call/{call_uuid}

返回

 {
    "call_duration": 4,
    "total_amount": "0.00400"
  }

如何在脚本中调用此页面并将call_duationtotal_amount保存为单独的变量?

如下所示?:

$call_duration =
$_GET[https://api.domain.com/v1/Account/{auth_id}/Call/{call_uuid}, 'call_duration'];

3 个答案:

答案 0 :(得分:2)

如果PHP启用了allow_url_fopen,您只需执行

即可
json_decode(file_get_contents('https://api.domain.com/v1/Account/{auth_id}/Call/{call_uuid}'))

否则你将不得不求助于使用像Curl这样的东西来获取请求。 $ _GET是一个超全局数组,它实际上并不是任何东西。它仅包含脚本启动的内容。它本身不会提出任何要求。

答案 1 :(得分:2)

$_GET[]包含传递给您代码的get参数 - 它们不会生成GET请求。

您可以使用curl发出请求:

    $ch = curl_init("https://api.domain.com/v1/Account/{auth_id}/Call/{call_uuid}");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($ch);       
    curl_close($ch);
    $result = json_decode($output); 

答案 2 :(得分:-1)

使用curl获取JSON,然后使用json_decode将其解码为PHP变量

$auth_id = 'your auth id here';
$call_uuid = 'your call_uuid here';

// initialise curl, set URL and options
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://api.domain.com/v1/Account/{$auth_id}/Call/{$call_uuid}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);

// get the response and decode it
$response = curl_exec($ch);
curl_close($ch);
$response = json_decode($response);

$call_duration = $response['call_duration'];
$total_amount = $response['total_amount'];