У меня есть приложение Yii2. Я хотел бы подключить его к другой спокойной веб-странице. Поэтому пользователь отправит данные в мое приложение, я отправлю их через запрос POST и сделаю что-то в соответствии с ответом JSON. Как я могу отправить ответную часть запроса/выборки в yii2?Подключить Yii2 к другому заявлению RESTful
ответ
Лучший метод должен был бы использовать локон, чтобы встык вызовы на RESTful API, в этом случае вы можете быть заинтересованы в проверке из a yii2 extension for curl.
Без расширения Yii2, мы можем сделать это путем создания более общая функция в контроллере или более предпочтительно модель (для общего доступа), как 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
.
Также удобно использовать file_get_contents
, если для доступа к URL-адресам веб-службы разрешена обертка fopen.
$response = file_get_contents('http://example.com/path/to/api?param1=stack¶m2=overflow');
Если ответ JSON подается, вы можете восстановить массив PHP следующим образом:
$response = json_decode($response, TRUE);
Если ответ XML возвращается, то
$response = new \SimpleXMLElement($response);
Однако, если API endpoint возвращает статус ошибки HTTP, функция file_get_contents завершается с предупреждением и возвращает null.
- 1. Влево Присоединиться к другому заявлению выбора
- 2. Подключить компонент .mxml к другому
- 3. Подключить socket.io к другому адресу
- 4. Программы продолжает идти прямо к другому заявлению (Python)
- 5. Yii2. Как подключить бутстрап Dropdown к модели?
- 6. Yii2 RESTful реляционные данные
- 7. Как подключить изображение к другому в Corona?
- 8. Можно ли подключить JVM к другому процессу?
- 9. Как подключить подключения GoogleApiClient к другому действию
- 10. подключить базу данных к другому компьютеру
- 11. Как подключить одно окно к другому
- 12. Повторно подключить сокет к другому интерфейсу
- 13. Подключить процесс StandardOutput к другому стандарту ProcessInput
- 14. Как подключить разделенные узлы к другому узлу?
- 15. Как подключить кнопку к другому контроллеру
- 16. Как подключить изогнутый div к другому?
- 17. Подключить UIView с XIB к другому ViewController
- 18. Как подключить электронное письмо к другому письму?
- 19. Как условно подключить один gui к другому?
- 20. Как подключить мангуст к другому удаленному серверу?
- 21. Как подключить элемент datagrid к другому классу
- 22. Как подключить UITableView к другому UITableView
- 23. Присоединиться к заявлению XOR
- 24. FOR примечание к заявлению
- 25. Подключить yii2 с mongodb
- 26. Позвоните другому другому приложению, а затем назад к тому же заявлению, открытому ранее
- 27. Как создать Yii2 RESTful API
- 28. YII2 Restful post и TimestampBehavior
- 29. Django ORM Присоединиться к заявлению
- 30. ACCESS 2007 Присоединиться к заявлению