2012-02-23 13 views
5

से क्या भेजता है, मुझे PHP स्क्रिप्ट के साथ कर्ल का उपयोग करके वेबफॉर्म से पूछताछ करने के लिए भिन्नताएं हैं। मुझे संदेह है कि मैं कुछ भेज रहा हूं जिसे वेबसर्वर पसंद नहीं करता है। यह देखने के लिए कि कर्ल वास्तव में क्या भेजता है मैं वेबसर्वर पर पूरा संदेश देखना चाहता हूं।देखें कि कर्ल एक PHP स्क्रिप्ट

मुझे पूरा आउटपुट देने के लिए मैं कर्ल कैसे सेट अप कर सकता हूं?

मैं

curl_setopt($ch, CURLOPT_VERBOSE, TRUE); 

किया, लेकिन है कि onyl मुझे हैडर का एक हिस्सा देता है। संदेश सामग्री दिखाई नहीं दे रही है।

उत्तर

3

सभी प्रश्नों के उत्तर के लिए धन्यवाद द्वारा हैंडल करने के लिए CURLINFO_HEADER_OUT विकल्प जोड़ने! आखिरकार, वे बताते हैं कि यह संभव नहीं है। मैं सड़क से नीचे गया और Wireshark से परिचित हो गया। एक आसान काम नहीं है लेकिन निश्चित रूप से प्रयास के लायक है।

+0

यदि आप https एंडपॉइंट का अनुरोध कर रहे हैं तो वायरसहार्क आपकी सहायता नहीं करेगा क्योंकि डेटा एन्क्रिप्ट किया गया है। –

-1

यदि आप सामग्री चाहते हैं तो आप इसे लॉग नहीं कर सकते? मैं अपने एपीआई के लिए कुछ इसी तरह कर रहा हूँ कॉल

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

या कोशिश

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

यही वह नहीं है जिसे मैं ढूंढ रहा हूं। मैं XDebug के साथ अपने चर की जांच कर सकता हूं, कोई समस्या नहीं। मैं पूरे HTTP अनुरोध, शीर्षलेख और सामग्री को देखना चाहता हूं क्योंकि इसे कर्ल द्वारा भेजा गया है। – BetaRide

+1

@ बीटाराइड जहां तक ​​मुझे पता है कि वायरशर्क या टीसीपीडम्प का उपयोग किए बिना पूरी सामग्री को देखना संभव नहीं है। आप जो निकटतम प्राप्त कर सकते हैं वह हैडर और सामग्री को एक साथ प्रदर्शित कर रहा है। – Bot

-2

मैं 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

यह केवल प्रतिक्रिया के बारे में बहुत सारी जानकारी दिखाता है। मुझे जो चाहिए वह अनुरोध के बारे में सभी विवरण है (यानी वेबसर्वर पर क्या होता है)। – BetaRide

1

क्या आपने CURLINFO_HEADER_OUT को आजमाया है?

curl_getinfo के लिए PHP मैनुअल का हवाला देते हुए:

CURLINFO_HEADER_OUT - अनुरोध स्ट्रिंग भेज दिया। इस कार्य के लिए, curl_setopt() कॉल

+0

वैसे मैनुअल सही तरीके से कहता है: केवल हेडर। लेकिन मुझे पूरी चीज, हेडर और सामग्री की आवश्यकता है। – BetaRide

+0

क्यों किसी अन्य पते और डीबग को चीज़ पोस्ट न करें? अगर कर्ल वास्तव में कुछ खराब कर देता है, तो यह वैसे भी झूठ बोल सकता है। –

+0

प्लस, हेडर के बारे में होने के लिए यह अधिक संभावना है। यह देखते हुए कि आप एक वेबफॉर्म पोस्ट करना चाहते हैं (किसी साइट पर आप नियंत्रण नहीं करते हैं, मैं अनुमान लगा रहा हूं), क्या आप वाकई कुकीज़ समस्या नहीं हैं? उदाहरण के लिए उपयोगकर्ता-एजेंट। या कुछ और। आप अपना पूरा कोड क्यों नहीं पोस्ट करते हैं और शायद हम इस समस्या को तेजी से निदान कर सकते हैं। –

संबंधित मुद्दे