[php] Curl POST 요청 헤더를 표시 하시겠습니까? 이를 수행하는 방법이 있습니까?

Curl 웹 자동화 앱을 구축 중이며 POST 작업의 원하는 결과를 얻지 못하는 문제가 있습니다. 내가 보내는 전체 POST 요청 (헤더 포함)을 어떻게 표시 할 수 있는지 파악하는 데 문제가 있습니다. 이것에 대해 검색했지만 나타나는 모든 것은 응답 헤더입니다. 실제로 나는 이것도 원하지만 Google에서 찾은 게시물 중 어느 것도 언급하지 않는 요청도 원합니다 ..

다음과 같은 것을 사용하여 curl 요청의 결과를 표시 할 수 있다는 것을 알고 있습니다 (내 구문이 꺼져 있으면 용서하십시오. 이미 참조 할 IDE 및 코드로 가상 머신을 종료했습니다.

 $result = curl($curl_exect) ;

어쨌든 전체 헤더를 보는 방법에 대한 조언을 주시면 감사하겠습니다.



답변

다음을 수행하여 전송에 관한 정보를 볼 수 있습니다.

curl_setopt($curl_exect, CURLINFO_HEADER_OUT, true);

요청하기 전에

$information = curl_getinfo($curl_exect);

요청 후

보기 : http://www.php.net/manual/en/function.curl-getinfo.php

당신은 또한 CURLOPT_HEADER당신의curl_setopt

curl_setopt($curl_exect, CURLOPT_HEADER, true);

$httpcode = curl_getinfo($c, CURLINFO_HTTP_CODE);

return $httpcode == 200;

이들은 헤더를 사용하는 몇 가지 방법입니다.


답변

필요한 것은 다음과 같습니다.

curl_setopt($curlHandle, CURLINFO_HEADER_OUT, true); // enable tracking
... // do curl request    
$headerSent = curl_getinfo($curlHandle, CURLINFO_HEADER_OUT ); // request headers


답변

다음을 사용하여 curl에서 보낸 모든 헤더를 파일에 저장할 수 있습니다.

$f = fopen('request.txt', 'w');
curl_setopt($ch,CURLOPT_VERBOSE,true);
curl_setopt($ch,CURLOPT_STDERR ,$f);


답변

다음을 사용하여 직접 헤더를 요청할 수 있습니다.

// open a socket connection on port 80
$fp = fsockopen($host, 80);

// send the request headers:
fputs($fp, "POST $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: $referer\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ". strlen($data) ."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data);

$result = '';
while(!feof($fp)) {
    // receive the results of the request
    $result .= fgets($fp, 128);
}

// close the socket connection:
fclose($fp);

요청하는 방법대한 글 처럼


답변

최근에 똑같은 문제가 발생하여 Wireshark (네트워크 모니터링 도구)를 설치했습니다. 암호화 된 트래픽 (HTTPS)을 제외한 모든 것을 볼 수 있습니다.


답변