Curl Webオートメーションアプリを構築していますが、POSTアクションの望ましい結果が得られないという問題があります。POST私は(ヘッダー付きで)送信しています、私はこれで検索していますが、表示されるのは応答ヘッダーです。実際にはこれらも必要ですが、Googleで見つけた投稿のどれも言及していないようです。
私はこのような何かを使用してカールリクエストの結果を表示できることを知っています(構文がオフの場合はご容赦ください、参照する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);
if($httpcode == 200) {
return true;
}
return false;
これらは、ヘッダーを使用するいくつかの方法です。
必要なものは次のとおりです。
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)を除く、これですべてを見ることができます。