Solución:
Un problema común son los espacios en la URL: al principio, en el medio o al final. ¿Revisaste eso?
Editar – según los comentarios a continuación, el espaciado no es el problema.
Ejecuté su código y tuve el mismo problema: sin salida alguna. Probé la URL y con una solicitud GET, el servidor me habla. Haría lo siguiente:
-
Utilice lo siguiente como $ base_url: $ base_url = “http://ws.audioscrobbler.com/2.0/?user=bachya&period=&api_key=xxx&method=user.getTopTracks”;
-
Elimina los campos de publicación de tu solicitud.
Editar
Saqué tu código de la clase porque no tenía el resto y lo modifiqué. El siguiente código funciona perfecto para mí. Si estos cambios no funcionan para usted, sugiero que su error esté en una función diferente.
<?php
function getTopTracks()
{
$base_url="http://ws.audioscrobbler.com/2.0/?user=bachya&period=&api_key=8066d2ebfbf1e1a8d1c32c84cf65c91c&method=user.getTopTracks";
$options = array_merge(array(
'user' => 'bachya',
'period' => NULL,
'api_key' => 'xxxxx...', // obfuscated, obviously
));
$options['method'] = 'user.getTopTracks';
// Initialize cURL request and set parameters
$ch = curl_init($base_url);
curl_setopt_array($ch, array(
CURLOPT_URL => $base_url,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_TIMEOUT => 30,
CURLOPT_USERAGENT => 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)'
));
$results = curl_exec($ch);
return $results;
}
echo getTopTracks();
?>
El servidor recibió su solicitud, pero envió una respuesta vacía. Compruebe el resultado de curl_getinfo($ch, CURLINFO_HTTP_CODE)
para saber si el servidor respondió con un código de error HTTP.
Actualizar: Ok, entonces el servidor responde con el 100 Continue
Código de estado HTTP. En ese caso, esto debería resolver su problema:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
Encontré esto aquí: PHP y cURL: Deshabilitar el encabezado 100-continue. ¡Espero que funcione!