J'ai des problèmes avec le service de connexion MQL freebase. Je fais une demande de poste, puis l'api base libre devrait renvoyer les en-têtes que je vais ensuite analyser et obtenir des informations.cURL et Api de Freebase
Mais la seule tête que je reçois est HTTP/1.0 200 OK
code
class myFreebaseClass {
....
function doLogin() {
echo $uri = "http://".$this->config['apiSandboxHost'].'/'.$this->config['apiLoginPath'].'username='.$this->config['apiLoginUser'].'&password='.$this->config['apiLoginPass'];
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADERFUNCTION, array(&$this,'readHeader'));
$output = curl_exec($ch);
curl_close($ch);
}
function readHeader($ch, $string)
{
echo "Header: ".$string."<Br />";
if(strpos($string, 'Set-Cookie') !== false) {
$this->authCookies[] = str_replace('Set-Cookie: ', '', $string);
}
return true;
}
}
Sorties
http://sandbox.freebase.com/api/account/login?username=dXXXXX&password=XXXX
Header: HTTP/1.0 200 OK
Qu'est-ce que je fais mal? Est-ce que je reçois les en-têtes incorrectement?
Merci d'avance!
En quoi consiste le '$ this'? Êtes-vous à l'intérieur d'un objet? Je ne comprends pas tout à fait ce que vous faites là (mais alors, je n'ai jamais travaillé avec HEADERFUNCTION pour que ce soit moi). Le manuel parle de 'Le nom d'une fonction de rappel où la fonction de rappel prend deux paramètres' donc je ne comprends pas vraiment pourquoi vous spécifiez un tableau? –
Ouais tout le code est dans une classe, la raison du tableau avec $ this est qu'elle appelle readHeader dans cette classe. Sans cela, ce serait une fonction indéfinie. – Lizard
ah, bien sûr. Donc 'readHeader' est vraiment en dehors de la fonction que vous citez ci-dessus? Je suis sûr que c'est le cas, mais d'exclure la possibilité que ce soit un langage/structurelle bizarre plutôt qu'un problème CURL. –