我有一個腳本,發送POST數據到幾個頁面。但是,我遇到了一些困難,向某些服務器發送請求。原因是重定向。這裏的模型:PHP與捲曲:遵循重定向與POST
- 我'發送POST請求到服務器
- 服務器響應:301永久移動
- 然後curl_setopt($ CH,CURLOPT_FOLLOWLOCATION,TRUE)踢和後面的重定向(但可通過GET請求)。
爲了解決這個問題,我使用了curl_setopt($ ch,CURLOPT_CUSTOMREQUEST,「POST」)和yes,現在它的重定向沒有發送第一個請求中的POST主體內容。如何在重定向時強制curl 發送帖子主體?謝謝!
這裏的例子:
<?php
function curlPost($url, $postData = "")
{
$ch = curl_init() or exit ("curl error: Can't init curl");
$url = trim ($url);
curl_setopt ($ch, CURLOPT_URL, $url);
//curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt ($ch, CURLOPT_TIMEOUT, 30);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36");
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$response = curl_exec ($ch);
if (! $response) {
echo "Curl errno: " . curl_errno ($ch) . " (" . $url . " postdata = $postData)\n";
echo "Curl error: " . curl_error ($ch) . " (" . $url . " postdata = $postData)\n";
$info = curl_getinfo($ch);
echo "HTTP code: ".$info["http_code"]."\n";
// exit();
}
curl_close ($ch);
// echo $response;
return $response;
}
?>
一個307響應代碼把你的PHP代碼後與例如 –