Je veux avoir une classe autonome PHP) dans laquelle je veux avoir une fonction qui appelle une API via cURL et obtient la réponse. Quelqu'un peut-il m'aider à cet égard?
Merci.
il suffit d’utiliser le morceau de code ci-dessous pour obtenir la réponse d’une URL de service Web reposante, j’utilise l’URL de mention sociale,
$response = get_web_page("http://socialmention.com/search?q=iphone+apps&f=json&t=microblogs&lang=fr");
$resArr = array();
$resArr = json_decode($response);
echo "<pre>"; print_r($resArr); echo "</pre>";
function get_web_page($url) {
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_ENCODING => "", // handle compressed
CURLOPT_USERAGENT => "test", // name of client
CURLOPT_AUTOREFERER => true, // set referrer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // time-out on connect
CURLOPT_TIMEOUT => 120, // time-out on response
);
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
curl_close($ch);
return $content;
}
Le noeud de la solution est la mise
CURLOPT_RETURNTRANSFER => true
ensuite
$response = curl_exec($ch);
CURLOPT_RETURNTRANSFER indique à PHP de stocker la réponse dans une variable au lieu de l'imprimer sur la page, de sorte que $ réponse contiendra votre réponse. Voici votre code de travail le plus fondamental (je pense, je ne l'ai pas testé ):
// init curl object
$ch = curl_init();
// define options
$optArray = array(
CURLOPT_URL => 'http://www.google.com',
CURLOPT_RETURNTRANSFER => true
);
// apply those options
curl_setopt_array($ch, $optArray);
// execute request and get response
$result = curl_exec($ch);
Si quelqu'un d'autre le découvre, j'ajoute une autre réponse pour fournir le code de réponse ou d'autres informations pouvant être nécessaires dans la "réponse".
http://php.net/manual/en/function.curl-getinfo.php
// init curl object
$ch = curl_init();
// define options
$optArray = array(
CURLOPT_URL => 'http://www.google.com',
CURLOPT_RETURNTRANSFER => true
);
// apply those options
curl_setopt_array($ch, $optArray);
// execute request and get response
$result = curl_exec($ch);
// also get the error and response code
$errors = curl_error($ch);
$response = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
var_dump($errors);
var_dump($response);
Sortie:
string(0) ""
int(200)
// change www.google.com to www.googlebofus.co
string(42) "Could not resolve Host: www.googlebofus.co"
int(0)