2016-09-23 2 views
0

У меня есть веб-сайт, написанный в php yii2 framework. У меня есть второй, который написан в mvc.net, который имеет api, например, www.secondone.com/api/get_records. Этот api возвращает json, и я хочу использовать этот json в действии приложения yii2. Каким образом можно получить содержимое внешнего URL-адреса в действии yii2?Как отправить запрос на внешний url в yii2 метод действия

+1

взглянуть на это http://www.yiiframework.com/extension/yii2-curl/ –

ответ

2

вы можете попробовать завиток

CURL это библиотека, которая позволяет делать HTTP запросы в PHP. Все, что нужно , вы должны знать об этом (и большинстве других расширений) можно найти в руководстве по PHP .

In order to use PHP's cURL functions you need to install the » libcurl package. PHP requires that you use libcurl 7.0.2-beta or 

высшее. В PHP 4.2.3 вам понадобится libcurl версии 7.9.0 или выше. Из PHP 4.3.0 вам понадобится версия libcurl, которая равна 7.9.8 или выше. Для PHP 5.0.0 требуется версия libcurl версии 7.10.5 или выше.

Вы также можете создавать HTTP-запросы без cURL, хотя для вашего файла php.ini требуется включить разрешение allow_url_fopen.

вот некоторые примеры кода

$service_url = 'http://path/to/api.asmx/function_name'; 
$curl = curl_init($service_url); 
$curl_post_data = array(
     'param1' => 'val1', 
     'param2' => 'val2' 
); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data); 
$curl_response = curl_exec($curl); 
if ($curl_response === false) { 
    $info = curl_getinfo($curl); 
    curl_close($curl); 
    die('error occured during curl exec. Additioanl info: ' . var_export($info)); 
} 
curl_close($curl); 
$decoded = json_decode($curl_response); 
if (isset($decoded->response->status) && $decoded->response->status == 'ERROR') { 
    die('error occured: ' . $decoded->response->errormessage); 
} 
echo 'response ok!'; 
var_export($decoded->response); 
Смежные вопросы