簡體   English   中英

顯示 Curl POST 請求標頭? 有沒有辦法做到這一點?

[英]Show Curl POST Request Headers? Is there a way to do this?

我正在構建一個 Curl Web 自動化應用程序,但在無法獲得我的 POST 操作的預期結果時遇到了一些問題,我在弄清楚如何顯示我發送的完整 POST 請求(帶有標題)時遇到了一些麻煩,我一直在搜索這個,但出現的一切都是響應頭,實際上我也想要這些,但也想要請求,我在谷歌上找到的帖子似乎都沒有提到..

我知道我可以使用這樣的東西來顯示 curl 請求的結果(如果我的語法關閉,請原諒我,我已經用我的 ide 和代碼關閉了我的虛擬機以參考

 $result = curl($curl_exect) ;

無論如何,我將不勝感激有關如何查看完整標題的任何建議,謝謝

這是您需要的一切:

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

您可以通過執行以下操作查看有關傳輸的信息:

curl_setopt($curl_exect, CURLINFO_HEADER_OUT, true);

在請求之前,和

$information = curl_getinfo($curl_exect);

請求后

查看: http : //www.php.net/manual/en/function.curl-getinfo.php

您還可以在curl_setopt使用CURLOPT_HEADER

curl_setopt($curl_exect, CURLOPT_HEADER, true);

$httpcode = curl_getinfo($c, CURLINFO_HTTP_CODE);

return $httpcode == 200;

這些只是使用標題的一些方法。

您可以使用以下命令將 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),您可以看到所有內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM