Curl 웹 자동화 앱을 구축 중이며 POST 작업의 원하는 결과를 얻지 못하는 문제가 있습니다. 내가 보내는 전체 POST 요청 (헤더 포함)을 어떻게 표시 할 수 있는지 파악하는 데 문제가 있습니다. 이것에 대해 검색했지만 나타나는 모든 것은 응답 헤더입니다. 실제로 나는 이것도 원하지만 Google에서 찾은 게시물 중 어느 것도 언급하지 않는 요청도 원합니다 ..
다음과 같은 것을 사용하여 curl 요청의 결과를 표시 할 수 있다는 것을 알고 있습니다 (내 구문이 꺼져 있으면 용서하십시오. 이미 참조 할 IDE 및 코드로 가상 머신을 종료했습니다.
$result = curl($curl_exect) ;
어쨌든 전체 헤더를 보는 방법에 대한 조언을 주시면 감사하겠습니다.
답변
다음을 수행하여 전송에 관한 정보를 볼 수 있습니다.
curl_setopt($curl_exect, CURLINFO_HEADER_OUT, true);
요청하기 전에
$information = curl_getinfo($curl_exect);
요청 후
당신은 또한 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)을 제외한 모든 것을 볼 수 있습니다.