GET запрос curl работает только в почтальоне, но не в php - PullRequest
0 голосов
/ 01 сентября 2018

Я пытаюсь получить html как ответ, но он работает только в почтальоне, но не в php. В php я получаю другой ответ типа "Что-то пошло не так ..."

Что мне не хватает?

Вот код:

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://www.avnet.com/shop/SearchDisplay?searchTerm=LMK316BJ476ML-T&countryId=apac&deflangId=-1&storeId=715839038&catalogId=10001&langId=-1&sType=SimpleSearch&resultCatEntryType=2&searchSource=Q&searchType=100&avnSearchType=all",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Cache-Control: no-cache"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

ответ почтальона

enter image description here

php response

enter image description here

Заранее спасибо.

1 Ответ

0 голосов
/ 01 сентября 2018

Я поиграл с CURLOPT_HTTPHEADER и понял, что сайт проверяет 2 заголовка: User-Agent и Accept-Language. Я отправил это правильно, и это сработало. Пожалуйста, найдите заголовки ниже

CURLOPT_HTTPHEADER => array(
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
"Accept-Language:en-US,en;q=0.5"
)

Получило удовольствие от выяснения проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...