web-dev-qa-db-ja.com

Curl POSTリクエストヘッダーを表示しますか?これを行う方法はありますか?

Curl Webオートメーションアプリを構築していますが、POSTアクションの望ましい結果が得られないという問題があります。POST私は(ヘッダー付きで)送信しています、私はこれで検索していますが、表示されるのは応答ヘッダーです。実際にはこれらも必要ですが、Googleで見つけた投稿のどれも言及していないようです。

私はこのような何かを使用してカールリクエストの結果を表示できることを知っています(構文がオフの場合はご容赦ください、参照するIDEとコードですでに仮想マシンをシャットダウンしています

 $result = curl($curl_exect) ;

とにかく、ヘッダー全体を表示する方法についてアドバイスをいただければ幸いです。

80
Rick

以下を実行することにより、転送に関する情報を表示できます。

curl_setopt($curl_exect, CURLINFO_HEADER_OUT, true);

リクエストの前

$information = curl_getinfo($curl_exect);

リクエスト後

表示: http://www.php.net/manual/en/function.curl-getinfo.php

CURLOPT_HEADERcurl_setoptを使用することもできます

curl_setopt($curl_exect, CURLOPT_HEADER, true);

$httpcode = curl_getinfo($c, CURLINFO_HTTP_CODE);

if($httpcode == 200) {
    return true;
}

return false;

これらは、ヘッダーを使用するいくつかの方法です。

68
RobertPitt

必要なものは次のとおりです。

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

以下を使用して、curlによって送信されたすべてのヘッダーをファイルに保存できます。

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

次を使用して、自分でヘッダーをリクエストできます。

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

リクエストの作成方法

6
Liutas

最近、まったく同じ問題が発生し、Wireshark(ネットワーク監視ツール)をインストールしました。暗号化されたトラフィック(HTTPS)を除く、これですべてを見ることができます。

3
greg0ire