PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 1
gerzog1995 Отправлено: 30 Октября, 2020 - 10:08:21 • Тема: Curl и JSESSIONID • Форум: Работа с сетью

Ответов: 0
Просмотров: 159
Кидаю гет запрос, чтобы установить новый сеанс и записать куки в файл
PHP:
скопировать код в буфер обмена
  1.  
  2. $cookie = dirname(__FILE__)."\cookie.txt";
  3. $post_data = '{"userQuery":"( !^!(applicationNumber:(*12*))!^! )"}';
  4. $headers = array(
  5.                
  6.                 'Upgrade-Insecure-Requests:1',
  7.                 'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',
  8.                 'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
  9. );
  10.        
  11. $curl = curl_init();
  12. curl_setopt($curl, CURLOPT_URL, 'https://site.ru');
  13. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  14. curl_setopt($curl, CURLOPT_VERBOSE, true);
  15. //curl_setopt($curl, CURLOPT_PROXY, '51.89.94.21:3128');
  16. curl_setopt($curl, CURLOPT_COOKIESESSION, TRUE);
  17. curl_setopt($curl, CURLOPT_HEADER, TRUE);
  18. curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
  19. curl_setopt($curl, CURLOPT_NOBODY, 1);
  20. curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
  21. $result = curl_exec($curl);
  22. print_R(curl_getinfo($curl, CURLINFO_COOKIELIST));
  23. echo '<br><br>';
  24. echo $result;
  25.  

В файл куки записались все, кидаю второй post запрос
PHP:
скопировать код в буфер обмена
  1.  
  2. $headers = array(
  3.                 'Content-Length: '.strlen($post_data),
  4.                 'Accept:application/json, text/plain, */*',
  5.                 'X-Requested-With:XMLHttpRequest',
  6.                 'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',
  7.                 'Content-Type:application/json;charset=UTF-8',
  8. );
  9. curl_setopt($curl, CURLOPT_URL, 'https://esearch.ipd.gov.hk/nis-pos-view/tm/search/?page=1&rows=10');
  10. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  11. curl_setopt($curl, CURLOPT_VERBOSE, true);
  12. curl_setopt($curl, CURLOPT_POSTFIELDS, '{"userQuery":"( !^!(applicationNumber:(*12*))!^! )"}');
  13. curl_setopt($curl, CURLOPT_POST, 1);
  14.  
  15. curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
  16. curl_setopt($curl, CURLOPT_COOKIESESSION, false);
  17. curl_setopt($curl, CURLOPT_HEADER, TRUE);
  18. curl_setopt($curl, CURLOPT_NOBODY, 0);
  19. //curl_setopt($curl, CURLOPT_PROXY, '51.89.94.21:3128');
  20. curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
  21. $curl_response = curl_exec($curl);
  22. print_R(curl_getinfo($curl, CURLINFO_COOKIELIST));
  23. echo '<br><br>';
  24. echo '<br><br>';
  25. echo $curl_response;
  26.  

Ответ 403.
В Postman ставил Interceptor, заголовки все стянул, удалял по-этапно и для успешного запроса с кодом 200 мне нужно отправить в заголовок Content-Type и Content-Length + куки сессии.
При первом и втором запросе, CURLINFO_COOKIELIST показывает один и тот же сеанс JSESSIONID.
В браузере если сеанс начался и я его заменяю в скрипт curl или в postman, то сервер отдает 200, а если даже в postman отправлю гет запрос, установятся куки и отправлю с теми же куками пост запрос - снова 403. Буду рад любой информации, уже весь гугл пересмотрел, все примеры применил, все равно 403 отдает. Подскажите пожалуйста где я не прав или в какую сторону гугла смотреть?
(Добавление)
gerzog1995 пишет:
curl_setopt($curl, CURLOPT_URL, 'https://esearch.ipd.gov.hk/nis-pos-view/tm/search/?page=1&rows=10');

Здесь забыл url исправить на curl_setopt($curl, CURLOPT_URL, 'site.ru');

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB