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):
JavaScript
x
$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.
Advertisement
Answer
I’d suggest using CURL:
JavaScript
$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.