Запрос php curl возвращает «405 Not Allowed», есть ли другой способ очистки? - PullRequest
0 голосов
/ 01 апреля 2019

Я использую php curl, мой код работает для других сайтов, но когда я запрашиваю этот URL https://i.local.ch/#q?q=manager&origin=&rid=ac8EV&sort=relevance, он возвращает:

405 Не разрешено Nginx

Примечание: SSl активен на моем домене

include "simple_html_dom.php";
$url="https://i.local.ch/#q?q=manager&origin=&rid=ac8EV&sort=relevance";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);

$info = curl_getinfo($ch);
print_r( $info );

echo var_dump($server_output);

1 Ответ

0 голосов
/ 01 апреля 2019

Ошибки HTTP 405 возникают, когда веб-сервер не разрешает HTTP-метод для запрошенного URL-адреса.

Сделайте тот же запрос из браузера и проверьте заголовки запроса. Убедитесь, что вы используете правильный метод get, post или put при отправке запроса. Также проверьте, отправляются ли дополнительные заголовки с запросом, так как некоторые URL-адреса разрешены только из запроса ajax, и вы можете добиться этого, добавив соответствующие заголовки с запросом.

Вы можете отправить дополнительные заголовки, используя метод ниже


curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    "Accept-Charset" => "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
    "Keep-Alive" => "115",
    "Connection" => "keep-alive",
    "X-Requested-With" => "XMLHttpRequest"
));


...