2012-02-23 13 views
5

Bir PHP betiğiyle CURL kullanarak bir web formunu sorgulamak için zorluklar yaşıyorum. Şüpheliyim ki, web sunucusunun sevmediği bir şey gönderiyorum. CURL’in gerçekten gönderdiği mesajı görmek için web sunucusuna gönderilen iletinin tamamını görmek istiyorum.Bir CURL'den bir PHP betiğinden ne gönderdiğini görün

Bana CURL'yi tam çıkış vermek için nasıl ayarlayabilirim?

Ben
curl_setopt($ch, CURLOPT_VERBOSE, TRUE); 

yaptım ama o oni bana başlığının bir kısmını verir. Mesaj içeriği gösterilmiyor.

cevap

3

Teşekkür curl_setopt() çağırarak koluna CURLINFO_HEADER_OUT seçeneği eklemek! Sonuçta, bunun mümkün olmadığını söylüyorlar. Yola çıktım ve Wireshark'u tanıdım. Kolay bir iş değil ama kesinlikle çabaya değer.

+0

Wireshark, verilerin şifrelenmesi nedeniyle https uç noktası istemeniz durumunda yardımcı olmaz. –

-1

İçeriği istiyorsanız, sadece oturum açamıyor musunuz? Benim API için benzer bir şey yapıyorum

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, self::$apiURL); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_POST, count($dataArray)); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString); 

$logger->info("Sending " . $dataString); 
self::$results = curl_exec($ch); 
curl_close($ch); 

$decoded = json_decode(self::$results); 
$logger->debug("Received " . serialize($decoded)); 

Ya

curl_setopt($ch, CURLOPT_STDERR, $fp); 
+0

Bu benim aradığım şey değil. Değişkenlerimi XDebug ile kontrol edebilirim, sorun değil. CURL tarafından gönderilen tüm HTTP isteğini, başlığını ve içeriğini görmek istiyorum. – BetaRide

+1

@BetaRide Bildiğim kadarıyla, tüm içeriği WireShark veya tcpdump kullanmadan görmek mümkün değildir. Alabileceğiniz en yakın başlık ve içeriği birlikte görüntülüyor. – Bot

-2

Ben curl_getinfo kullanarak öneriyoruz denemek çağırır.

<?php 
curl_exec($ch); 
    $info = curl_getinfo($ch); 
     if (!empty($info) && is_array($info) { 
      print_r($info); 
      } else { 
        throw new Exception('Curl Info is empty or not an array'); 
     }; 
?> 
+0

Bu sadece yanıtla ilgili birçok ayrıntı gösterir. İhtiyacım olan şey, istekle ilgili detaylardır (ör. Web sunucusuna giden). – BetaRide

1

CURLINFO_HEADER_OUT'u denediniz mi?

curl_getinfo için PHP kılavuzu alıntı:

CURLINFO_HEADER_OUT - gönderilen istek dizesini. Bu işlemin gerçekleşmesi için, tüm cevaplar için

+0

Elkitabının doğru dediği gibi: sadece başlıklar. Ama ben her şeye, başlığa ve içeriğe ihtiyacım var. – BetaRide

+0

Neden sadece başka bir adrese POST yapma ve hata ayıklama? Eğer CURL gerçekten bir şeyleri mahvediyorsa, yine de yalan olabilir. –

+0

Artı, başlıklarla ilgili olmak daha olasıdır. Bir web formu yayınlamak istediğinizde (kontrol etmediğiniz bazı sitelerde, tahmin ediyorum), bir çerez sorunu olmadığından emin misiniz? Veya örneğin Kullanıcı-Aracı. Veya başka bir şey. Neden tüm kodunuzu postalamıyorsunuz ve belki de sorunu bu şekilde daha hızlı teşhis edebiliriz. –

İlgili konular