2012-02-23 20 views
5

Mam trudności z zapytaniem o formularz internetowy za pomocą CURL ze skryptem PHP. Podejrzewam, że wysyłam coś, co nie podoba się serwerowi internetowemu. Aby zobaczyć, co naprawdę wysyła CURL, chciałbym zobaczyć całą wiadomość, która trafia na serwer internetowy.Zobacz, co CURL wysyła ze skryptu PHP

Jak ustawić CURL, aby uzyskać pełną moc wyjściową?

zrobiłem

curl_setopt($ch, CURLOPT_VERBOSE, TRUE); 

ale onyl daje mi część nagłówka. Treść wiadomości nie jest wyświetlana.

Odpowiedz

3

Dzięki za wszystkie odpowiedzi! W końcu mówią, że to niemożliwe. Zszedłem z drogi i zapoznałem się z Wireshark. Nie jest to łatwe zadanie, ale zdecydowanie warte wysiłku.

+0

Wireshark nie pomoże, jeśli będziesz żądał punktu końcowego HTTPS, ponieważ dane są zaszyfrowane. –

-1

Jeśli chcesz treści nie można po prostu się zalogować? Robię coś podobnego do mojego API zwraca

$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)); 

lub spróbuj

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

Nie tego szukam. Mogę sprawdzić moje zmienne za pomocą XDebug, bez problemu. Chcę zobaczyć całe żądanie HTTP, nagłówek i zawartość, ponieważ są wysyłane przez CURL. – BetaRide

+1

@ BetaRide O ile wiem, nie można zobaczyć całej zawartości bez korzystania z WireSharka lub tcpdump. Najbliżej można wyświetlić nagłówki i treść razem. – Bot

-2

polecam korzystania curl_getinfo.

<?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

To pokazuje tylko wiele szczegółów dotyczących odpowiedzi. Potrzebuję wszystkich szczegółów dotyczących żądania (tj. Tego, co trafia do serwera). – BetaRide

1

Czy próbowałeś CURLINFO_HEADER_OUT?

Cytując instrukcję PHP dla curl_getinfo:

CURLINFO_HEADER_OUT - ciąg Wniosek wysłany. Aby to działało, dodać opcję CURLINFO_HEADER_OUT do rączki poprzez wywołanie curl_setopt()

+0

Podobnie jak w instrukcji prawidłowo napisano: tylko nagłówki. Ale potrzebuję całej rzeczy, nagłówka i zawartości. – BetaRide

+0

Dlaczego po prostu POST rzeczy do innego adresu i debugowania? Jeśli cURL naprawdę coś zepsuł, to i tak może leżeć. –

+0

Co więcej, jest o wiele bardziej prawdopodobne, że chodzi o nagłówki. Biorąc pod uwagę, że chcesz opublikować formularz internetowy (na niektórych stronach, nad którymi nie masz kontroli, zgaduję), jesteś pewien, że to nie jest problem z plikami cookie? Lub na przykład User-Agent. Albo coś innego. Dlaczego nie zamieścisz całego kodu i być może szybciej zdiagnozujemy problem. –