Voglio avere una classe PHP autonoma in cui voglio avere una funzione che chiama un'API tramite cURL e ottiene la risposta. Qualcuno mi può aiutare in questo?Come ottenere risposta utilizzando cURL in PHP
Grazie.
Voglio avere una classe PHP autonoma in cui voglio avere una funzione che chiama un'API tramite cURL e ottiene la risposta. Qualcuno mi può aiutare in questo?Come ottenere risposta utilizzando cURL in PHP
Grazie.
basta usare sotto pezzo di codice per ottenere la risposta dal servizio web riposante url, io uso menzione url 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;
}
Oldie bug una goodie ... +1 per l'utilizzo di curl_setopt_array(). Tanto più pulito che chiamare ripetutamente curl_setopt(). – Ligemer
Il punto cruciale della soluzione è l'impostazione
CURLOPT_RETURNTRANSFER => true
poi
$response = curl_exec($ch);
CURLOPT_RETURNTRANSFER indica a PHP di memorizzare la risposta in una variabile anziché stamparla alla pagina, quindi $ response conterrà la tua risposta. Ecco il tuo codice di lavoro di base (penso, non testarlo):
// 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);
Alla risposta punto. Risolto il mio problema Grazie mille. –
bella spiegazione. – Kailas
Se qualcun altro si imbatte in questo, sto aggiungendo un'altra risposta per fornire il codice di risposta o altre informazioni che potrebbe essere necessario in la risposta".
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);
// output
string(0) ""
int(200)
// change www.google.com to www.googlebofus.co
string(42) "Could not resolve host: www.googlebofus.co"
int(0)
Bello, non sapevo di curl_error() – siliconrockstar
controllare questo link http://www.jonasjohn.de/snippets/php/curl-example.htm – mymotherland