Symfony2 - How to perform an external Request
http, php, symfony
Solution
I'd suggest using CURL:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'www.someapi.com?param1=A¶m2=B');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json')); // Assuming you're requesting JSON
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
// If using JSON...
$data = json_decode($response);
Note: The php on your web server must have the `php5-curl` library installed.
Assuming the API request is returning JSON data, this page may be useful.
This doesn't use any code that is specific to Symfony2. There may well be a bundle that can simplify this process for you, but if there is I don't know about it.
Problem
Using Symfony2, I need to access an external API based on HTTPS. How can I call an external URI and manage the response to "play" with it. For example, to render a success or a failure message? I am thinking in something like (note that performRequest is a completely invented method): ``` $response = $this -> performRequest("www.someapi.com?param1=A¶m2=B"); if ($response -> getError() == 0){ // Do something good }else{ // Do something too bad } ``` I have been reading about Buzz and other clients. But I guess that Symfony2 should be able to do it by its own.