私はYii2アプリケーションを持っています。私は別の安らかなWebページに接続したいと思います。ユーザーはアプリケーションにデータを送信し、POSTリクエストを介して送信し、JSONレスポンスに従って何かを行います。 yii2でリクエスト/フェッチ応答パートを送信するにはどうすればよいですか?Yii2を別のRESTfulアプリケーションに接続する
0
A
答えて
1
最善の方法は、あなたがYii2拡張子のないa yii2 extension for curl.
をチェックアウトするに興味がある可能性があり、その場合、あなたのRESTfulなAPIへの呼び出しを、エンドツーエンドを作るためにカールを使用することです、我々は、作成することによって、これを達成することができます以下exampledとしてコントローラに、より一般的な関数または(共有アクセスのために)、より好ましくは、モデルは:
/**
* $method e.g POST, GET, PUT
* $data = [
'param' => 'value',
]
*/
public function curlToRestApi($method, $url, $data = null)
{
$curl = curl_init();
// switch $method
switch ($method) {
case 'POST':
curl_setopt($curl, CURLOPT_POST, 1);
if($data !== null) {
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
break;
// logic for other methods of interest
// .
// .
// .
default:
if ($data !== null){
$url = sprintf("%s?%s", $url, http_build_query($data));
}
}
// Authentication [Optional]
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "username:password");
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
それからmethod
とurl
及び/又はdata
に応じて必要基底IEでこの関数を呼び出します。
WebサービスURLにアクセスするためにfopenラッパーが有効になっている場合は、file_get_contents
を使用すると便利です。
JSONレスポンスが提供されている場合は、次のように、あなたがPHPの配列を回復することができますが:
$response = json_decode($response, TRUE);
XML応答が返された場合、
$response = new \SimpleXMLElement($response);
しかし、APIの場合endpointはHTTPエラー状態を返し、file_get_contents関数は警告で失敗し、nullを返します。
関連する問題
- 1. Yii2 Db別のサーバーとの接続
- 2. Yii2データベース接続 - PDOException
- 3. Yii2 RESTfulなAPI
- 4. Yii2でのFirebaseデータベース接続
- 5. Yii2リモートデータベース接続の問題
- 6. herokuに2つのアプリケーションを配備し、RESTFul Webサービスで接続します
- 7. Yii2アプリをMy SQLクラスタに接続
- 8. Restful C#サービスからSQLサーバーに接続
- 9. Yii2。ブートストラップのドロップダウンをモデルに接続するには?
- 10. 別のPCから別の接続をSQLデータベースに接続するには?
- 11. HttpWebRequestの接続制限とRestFULサーバー
- 12. 別のアプリケーションからIdentityServer4/ASP.NETコアIDに接続する
- 13. リモートサーバーに接続するアプリケーション
- 14. Yii2で私のCSSファイルを接続するには?
- 15. Docker Swarm上の別のドッカーコンテナー内のnodejsアプリケーションをmongodbに接続
- 16. ActionCableを別のホストに接続する
- 17. Androidアプリケーションでネットワーク接続を再接続するには?
- 18. RESTful Webサービスでのピア(502)による接続のリセット
- 19. YII2。ルーティングによってdb接続を変更する
- 20. TLS1.2のVB6アプリケーションの接続接続
- 21. 別のデバイスに接続するには?
- 22. Yii2で設定ファイルなしでデータベースに接続するには?
- 23. どのようにYii2 RESTful APIを作成する
- 24. OutlookをWebアプリケーションに接続する
- 25. サーバーをAndroidアプリケーションに接続する
- 26. OpenIDをReact-Reduxアプリケーションに接続する
- 27. androidアプリケーションをWebサーバデータベースに接続する
- 28. .NETアプリケーションをMySQLに接続する
- 29. Windowsソフトウェアをangular2アプリケーションに接続する
- 30. WebアプリケーションにWebサービスを接続する