2016-09-23 13 views
0

私はphp yii2フレームワークで書かれたウェブサイトを持っています。 私は、例えばwww.secondone.com/api/get_recordsというapiを持つmvc.netで書かれた2番目のものを持っています。このAPIはjsonを返します。私はyii2アプリケーションアクションでこのjsonを使用します。 yii2のアクションで外部URLのコンテンツを取得する方法は何ですか?yii2のアクションメソッドでリクエストを外部URLに送信する方法

+1

このhttp://www.yiiframework.com/extension/yii2-curl/を見ています –

答えて

2

あなたはカール

CURLを試すことができますが、あなたがPHPでのHTTPリクエストを行うことができますライブラリです。すべて あなたはそれについて知っておく必要があります(そしてほとんどのその他の拡張機能)は 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 

higher。 PHP 4.2.3では、libcurlバージョン7.9.0以上が必要です。 PHP 4.3.0より、7.9.8または のlibcurlバージョンが必要です。 PHP 5.0.0にはlibcurlバージョン7.10.5以上が必要です。

あなたのphp.iniファイルでallow_url_fopenを有効にするには、 allow_url_fopenを有効にする必要がありますが、cURLを使用せずにHTTPリクエストを行うこともできます。

ここではいくつかのサンプルコード

$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); 
関連する問題