2010-09-07 24 views
2

Bonjour, je fais des tests sur le sandbox Freebase, mais je n'arrive pas à faire fonctionner la requête suivante. Il pend pendant des siècles puis ne retourne rien. J'ai aussi édité curl_getinfo() si cela aide quelqu'un à se débrouiller là où je me trompe.freebase cURL et mqlwrite avec PHP

echo $uri = "http://".$this->config['apiSandboxHost'].'/'.$this->config['apiWritePath'].'={"create":"unless_exists","type":"/user/docs/music/note","name":"A","id":null}'; 

$ch = curl_init($uri); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$headers = array(); 
$headers[] = 'X-Metaweb-Request : idio'; 
$headers[] = 'Content-length: 78'; 
$headers[] = 'Content-type: application/x-www-form-urlencoded'; 
$headers[] = 'Cookie: '. implode(';', $this->authCookies); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
$output = curl_exec($ch); 
pr(curl_getinfo($ch)); 
curl_close($ch); 
echo $output; 

Sortie

http://sandbox.freebase.com/api/service/mqlwrite?query={"create":"unless_exists","type":"/user/docs/music/note","name":"A","id":null} 

Array 
(
    [url] => http://sandbox.freebase.com/api/service/mqlwrite?query={"create":"unless_exists","type":"/user/docs/music/note","name":"A","id":null} 
    [content_type] => 
    [http_code] => 0 
    [header_size] => 0 
    [request_size] => 693 
    [filetime] => -1 
    [ssl_verify_result] => 0 
    [redirect_count] => 0 
    [total_time] => 285.371 
    [namelookup_time] => 0 
    [connect_time] => 0.185 
    [pretransfer_time] => 0.185 
    [size_upload] => 0 
    [size_download] => 0 
    [speed_download] => 0 
    [speed_upload] => 0 
    [download_content_length] => 0 
    [upload_content_length] => -1 
    [starttransfer_time] => 285.371 
    [redirect_time] => 0 
) 

Merci à l'avance pour toute aide!

Répondre

1

Cela a fini par être un problème avec la façon dont j'envoyais des données à freebase. Une fois que j'ai ajouté

curl_setopt($ch, CURLOPT_POSTFIELDS, $query); 

tout a bien fonctionné.

C'était bizarre car je ne pouvais le faire fonctionner que lorsque j'ai envoyé les données en tant que variable post et ajouté du contenu à la chaîne de requête de la requête.