PHP で CURL を使用して分析データを取得するフォーム送信を複製しようとしています。フィドラーから生の POST をコピーし、それを使用して PHP スクリプトに通知しました。
これは私のCURL関数です
function executeCurl($data, $certificate=false) {
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, $data['header']);
curl_setopt($ch, CURLOPT_URL, $data['url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data['postdata']);
curl_setopt($ch, CURLOPT_POST, $data['post']);
curl_setopt($ch, CURLOPT_COOKIE, $data['cookie']);
curl_setopt($ch, CURLOPT_HTTPHEADER, $data['httpheader']);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
if($certificate) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "\DigiCertHighAssuranceEVRootCA.crt");
}
//execute post
$result = curl_exec($ch);
サーバーから応答を受け取りましたが、投稿データが無視されました。これは私の POST リクエストです。
POST /report.aspx?tid=3477 HTTP/1.1
Host: blah.com
Cookie: somecookies;
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: https://blah.com/report.aspx?tid=3477
Accept-Language: en-GB,en;q=0.8,en-US;q=0.6
Content-Length: 7418
Expect: 100-continue
$data['postdata'] 値は、Fiddler からコピーした URL エンコード データ文字列の正確なコピーです。残りのヘッダーは、CURL によって追加される Expect: 100-continue ヘッダーを除いて同じです。
コンテンツ タイプが適切に設定されていることがわかります。
さらに、HTTPS が使用されており、証明書を使用するかどうかに違いはありません。
そのため、サーバーから応答を受け取りますが、投稿フィールドは無視されます。これがなぜなのかについて誰か提案がありますか?
前もって感謝します。
HTTPHEADER に「Expect:」を追加して編集すると、POST は次のようになりますが、サーバーは投稿されたデータにまだ応答しません。
POST /report.aspx?tid=3477 HTTP/1.1
Cookie: blah
Host: blah.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: https://blah.com
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: https://blah.com/report.aspx?tid=3477 HTTP/1.1
Accept-Language: en-GB,en;q=0.8,en-US;q=0.6
Content-Length: 7418