2012-02-23 6 views
5

PHP 스크립트로 CURL을 사용하여 웹 폼을 쿼리하는 데 어려움이 있습니다. 나는 웹 서버가 좋아하지 않는 것을 보내고 있다고 생각한다. CURL이 실제로 보내는 메시지를 보려면 웹 서버로가는 전체 메시지를보고 싶습니다.CURL이 PHP 스크립트에서 보내는 내용보기

전체 출력을 제공하도록 CURL을 설정하려면 어떻게해야합니까?

나는
curl_setopt($ch, CURLOPT_VERBOSE, TRUE); 

을했지만 그 설 포닐 나에게 헤더의 일부를 제공합니다. 메시지 내용이 표시되지 않습니다.

답변

3

감사 curl_setopt()를 호출하여 핸들에 CURLINFO_HEADER_OUT 옵션을 추가! 결국 그들은 불가능하다고 말합니다. 나는 길을 가다가 Wireshark에 익숙해졌다. 쉬운 일은 아니지만 노력할 가치가 있습니다.

+0

데이터가 암호화되어 있기 때문에 https 엔드 포인트를 요청하면 Wireshark가 도움이되지 않습니다. –

-1

콘텐츠를 원한다면 그냥 로그인 할 수 없습니까? 내 API에 대한 비슷한 일을하고있는 중이 야하는 것은

$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로 변수를 확인할 수 있습니다. 문제 없습니다. CURL이 보낸 그대로 전체 HTTP 요청, 헤더 및 내용을보고 싶습니다. – BetaRide

+1

@BetaRide 내가 아는 한 WireShark 또는 tcpdump를 사용하지 않고 전체 내용을 볼 수는 없습니다. 얻을 수있는 가장 가까운 것은 함께 헤더와 내용을 표시하는 것입니다. – 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 - 전송 된 요청 문자열을. 이 작업을 위해, 모든 답변을

+0

매뉴얼에 올바르게 쓰여져 있습니다 : 머리말 만. 그러나 나는 그 모든 것, 헤더와 내용이 필요합니다. – BetaRide

+0

POST를 다른 주소로 디버깅하는 것이 어떨까요? cURL이 실제로 뭔가를 망가 뜨리면 어쨌든 거짓말을합니다. –

+0

더하여, 헤더에 관한 가능성은 훨씬 더 높습니다. 웹 양식을 게시하고 싶다고 가정하면 (내가 제어 할 수없는 사이트에서 추측하고 있습니다.) 쿠키 문제가 아닌지 확인하십시오. 또는 User-Agent를 예로들 수 있습니다. 또는 다른 것. 전체 코드를 게시하면 문제를 더 빨리 진단 할 수 있습니다. –

관련 문제