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.
Advertisement
Answer
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.