私は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。ブートストラップのドロップダウンをモデルに接続するには?
- 2. herokuに2つのアプリケーションを配備し、RESTFul Webサービスで接続します
- 3. 別のPCから別の接続をSQLデータベースに接続するには?
- 4. HttpWebRequestの接続制限とRestFULサーバー
- 5. どのようにYii2 RESTful APIを作成する
- 6. リモートサーバーに接続するアプリケーション
- 7. 別のデバイスに接続するには?
- 8. Androidアプリケーションでネットワーク接続を再接続するには?
- 9. RESTful Webサービスでのピア(502)による接続のリセット
- 10. HttpComponents - 別のポートに接続する
- 11. androidアプリケーションをWebサーバデータベースに接続する
- 12. アプリケーションにSQLite3を接続
- 13. iPhoneアプリケーションをフラッシュメディアサーバーに接続
- 14. 別のクラスにDB接続を渡す
- 15. ソケット接続を受け入れるJava EEアプリケーションに接続
- 16. Javaアプリケーションを使用して別のマシンのデータベースに接続する
- 17. 別のスレッドで接続をリッスンする
- 18. Yii2 RESTfulサービスでGETリクエストからparamsを検証する方法
- 19. 別のアプリケーションに接続してメモリ使用量を監視する
- 20. .mxmlコンポーネントを別のものに接続
- 21. 私のアプリケーションを別の.Netアプリケーションに接続するにはどうすればいいですか?
- 22. Eclipseで直接AndroidアプリケーションをSQL Serverに接続する方法(Monodroidアプリケーションが接続しています)
- 23. VB6アプリケーションからMySQLに接続する
- 24. iOSアプリケーションからOracleに接続する
- 25. Rails:モデルを別のモデルに接続
- 26. 別のHTTP接続の結果(PHPエコー)私のAndroidアプリケーションで
- 27. サーバースレッド(ユーザー接続)を区別する
- 28. QTアプリケーション--- WIFI接続
- 29. Oauthを使用してJavaアプリケーションをGAEアプリケーションに接続する