Есть URL страница , которую я должен получить через CURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
curl_close($ch);
Но в итоге получаю страницу с запросом POST (Техническая ошибка). Так же пробовал библиотеку php-multi-curl (addUrl). Но все ранво получаю страницу с POST запросом. Помогите пожалуйста, как я могу получить страницу с GET запросом. file_get_contents не работает , так как HTTPS
$ch = curl_init('{URL}');
$headers = array("Content-Type: application/json; charset=utf-8");//изменить на нужный
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER , true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$response = curl_exec($ch);
Вот валидный GET запрос, прекрасно возвращает данные даже если сертификат сервера "самоподписной" =)
Дополнено:
1) Вам нужно разобраться с авторизацией на сайте( как именно и на какой URL отправляются авторизационные данные).
2) После запроса авторизации(отправки логина и пароля) вам нужно получить авторизационную Cookie, в примере она называется "PAC"..
preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $response, $matches);
$cookies = array();
foreach($matches[1] as $item) {
parse_str($item, $cookie);
$cookies = array_merge($cookies, $cookie);
}
3) Делать ваш GET запрос с этой Cookie
$headers = array("Content-Type: application/json; charset=utf-8","Cookie: PAC=".$cookies['PAC']);
p.s.
|
|
|
|