У меня есть сценарий, который отправляет данные POST на несколько страниц. однако я столкнулся с некоторыми трудностями при отправке запроса на некоторые серверы. Причина в перенаправлении. Вот модель:php with Curl: следует перенаправить с POST
- I'am отправки запроса на сервер после
- ответов сервера: 301 Moved Постоянно
- Тогда curl_setopt ($ ч, CURLOPT_FOLLOWLOCATION, TRUE) умирает и следует перенаправлению (но через GET запрос).
Чтобы решить эту i'am с помощью curl_setopt ($ ч, CURLOPT_CUSTOMREQUEST, «POST») и да, теперь его перенаправление без содержания 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;
}
?>
поместить свой код PHP в сообщение с примером –