PHP cURL hatası: "Sunucudan Boş cevap"

0 Cevap php

Tümü,

Amacı benim kullanıcı için en son parçayı kapmak için - Ben Last.FM için sığınakta API için bir sınıf işlevi var. İşte:

private static $base_url = 'http://ws.audioscrobbler.com/2.0/';

public static function getTopTracks($options = array())
{
  $options = array_merge(array(
    'user' => 'bachya',
    'period' => NULL,
    'api_key' => 'xxxxx...', // obfuscated, obviously
  ), $options);

  $options['method'] = 'user.getTopTracks';

  // Initialize cURL request and set parameters
  $ch = curl_init();
  curl_setopt_array($ch, array(
    CURLOPT_URL            => self::$base_url,
    CURLOPT_POST           => TRUE,
    CURLOPT_POSTFIELDS     => $options,
    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;
}

Bu döner "Empty reply from server". Ben biraz bu hata ağ altyapısında bazı arıza geldiğini ileri sürmüşlerdir biliyorum; Bu benim durumda doğru olduğuna inanmıyorum. Ben komut satırı üzerinden bir cURL isteği çalıştırırsanız, benim veri almak; Last.FM kadar hizmet ve erişilebilir.

Ben bu millet gidip şey değişti olmadığını görmeden, ben ince millet ile kontrol ve bu neden olur benim kodunda bazı sorun varsa görmek istedim.

Teşekkürler!

ANSWER: @ Jan Kuboschek bana (belki) burada ne oluyor tökezleriz yardımcı oldu. CURLOPT_POSTFIELDS bir ilişkisel dizi vererek, belirli bir içerik türü, belirli RESTful hizmetleri ile çalışmak olmayabilir belirtildi. Bir akıllı çözüm elle bu verilerin bir URL-kodlanmış bir sürümünü yaratmak ve CURLOPT_POSTFIELDS olarak bu geçmektir.

Daha fazla bilgi için, check out: http://www.brandonchecketts.com/archives/array-versus-string-in-curlopt_postfields

0 Cevap