2014-02-06 2 views
0

Я использую API, который возвращает JSON из GET запросаКак использовать GET на внешнем URL

Eg.

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

Возвращает

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

Как я могу назвать эту страницу из сценария и сохранить call_duation и total_amount в виде отдельных переменных?

-то вроде следующего ?:

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

Это выглядит очень похоже на JSON, [который PHP может обрабатывать] (http://us1.php.net/json). – admdrew

+0

, который не отвечает на его вопрос, хотя это было «как сделать запрос на другой сервер». – Tularis

ответ

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); 
+0

спасибо, поэтому для выбора 'call_duration' будет' $ result ['call_duration «] '? – alias51

+0

Точно. Попробуй и посмотри. – Floris

2

Если РНР allow_url_fopen включен, то вы можете просто сделать

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

В противном случае вам придется прибегнуть к помощи что-то вроде Curl, чтобы получить запрос собирается , $ _GET - суперглобальный массив, который фактически не do ничего. Он содержит только то, что сценарий начал с. Он сам не делает никаких запросов.

+0

Да - либо file_get_contents, либо curl сделают это. – Floris

+0

Как я уже сказал, зависит от конфигурации PHP;) – Tularis

+0

Хорошо, что ОП получает выбор сейчас ... один из этих двух примеров должен работать на большинстве серверов, я думаю. – Floris

-1

Используйте локон, чтобы получить 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']; 
Смежные вопросы