|
POST запрос с Request Payload
|
|||
---|---|---|---|
#18+
Здравствуйте, товарищи! Я не изучал специально PHP, поэтому могу не понимать элементарных вещей - уж простите... Задача у меня такая: Необходимо по ссылке https://1xstavka.ru/results/ получить результаты матчей одной букмекерской конторы Я посмотрел в консоли браузера каким образом это делается и увидел следующее: POST-запрос Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
$.ajax Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96.
Мои наработки ( исходник ): post.php Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 10:02 |
|
POST запрос с Request Payload
|
|||
---|---|---|---|
#18+
Сходу не увидал строчки с опцией CURLOPT_POST . Или, увидев CURLOPT_POSTFIELDS, curl сам понимает, что POST'ить надо? В мануалке http://php.net/manual/ru/function.curl-setopt.php в примерах отдельно выставляется опция. Сформировать JSON функцией json_encode(), а потом переписать вручную - вот это не понятно, зачем. AndroidNeedHelpОчень надеюсь на рабочий пример...Пример чего конкретно? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 10:40 |
|
POST запрос с Request Payload
|
|||
---|---|---|---|
#18+
vkleСформировать JSON функцией json_encode(), а потом переписать вручную - вот это не понятно, зачем.Да там JSON долбанутый походу... Вон там сколько фигурных скобок. На сколько я понял - это не по феншую, так как json_decode выдаёт NULL при попытке преобразовать его в массив. Поэтому я подставил строку из первого спойлера vkleПример чего конкретно? Пример обращения к этому адресу через POST-запрос... Может, я пример правильный нашёл а сам сайт не выдаёт? Может ему куков не хватает, или ещё что нужно указывать... Я дун-дук в этом вопросе :) больше по VBA, SQL... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 10:53 |
|
POST запрос с Request Payload
|
|||
---|---|---|---|
#18+
AndroidNeedHelpя подставил строку из первого спойлераПонял. AndroidNeedHelpПример обращения к этому адресу через POST-запрос...В мануалке (ссылка выше) есть примеры, в том числе, и с POST-запросами. Сама по себе технология отправки запросов описана в протоколе HTTP и не имеет никакого отношения к какому-то конкретному сайту. AndroidNeedHelpМожет, я пример правильный нашёл а сам сайт не выдаёт? Может ему куков не хватает, или ещё что нужно указывать...Может. По поводу куков - очень даже может. Ещё строка юзер-агента может анализироваться, ещё факт существования какого-то контрольного запроса к серверу... Да мало ли, что там напридумывали, чтоб не отдавать данные кому попало. Когда что-то не идет, а код стопроцентно рабочий - остается только максимально точно эмулировать поведение реального браузера. AndroidNeedHelpЯ дун-дук в этом вопросе :)Это временно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 13:55 |
|
POST запрос с Request Payload
|
|||
---|---|---|---|
#18+
vkle, Спасибо! Буду разбираться Если получится - обязательно отпишусь "для будущих поколений" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 17:54 |
|
POST запрос с Request Payload
|
|||
---|---|---|---|
#18+
Это опять я... Ну вот смотрите, js-функция не передаёт каких либо замудрёных параметров Если её немного упростить, пропустив формирование некоторых строк, то она будет выглядеть следующим образом Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
На сколько я понимаю, никаких особых "куков" тут не заложено (я их кстати отключал для всех сайтов в браузере и всё равно страница отображается корректно) Можно ли как-нибудь создать файл post.js запихнуть в него этот код, выложить на сервер и привязать к php странице? Может пойти таким путём а не мучиться с php? Или для js нужен браузер, и вебсервер его не обработает? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 21:38 |
|
POST запрос с Request Payload
|
|||
---|---|---|---|
#18+
AndroidNeedHelpникаких особых "куков" тут не заложеноДа, в этом Вы абсолютно правы. Да и вообще, ничего там не контролируется.... Из консоли по-быстрому проверил: Код: php 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 22:36 |
|
POST запрос с Request Payload
|
|||
---|---|---|---|
#18+
Реализовал свою идею через php и js post.php Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
ViewGameResultsGroup.js Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Закинул оба файла себе на сайт, но получаю ошибку: XMLHttpRequest cannot load https://1xstavka.ru/getTranslate/ViewGameResultsGroup. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://artnikol.ru' is therefore not allowed access. The response had HTTP status code 405. На сколько я понял - это из за того, что я обращаюсь со стороннего сайта, и это типа защиты... Подскажите, есть шансы её обойти? Пока буду искать решение... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2017, 23:59 |
|
POST запрос с Request Payload
|
|||
---|---|---|---|
#18+
Правильно понимаете. Читайте про кроссдоменный AJAX. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2017, 00:07 |
|
POST запрос с Request Payload
|
|||
---|---|---|---|
#18+
AndroidNeedHelp, Вы получили jSON запрос? Если Вам удалось, поделитесь кодом. Тоже ломаю голову над тем же самым запросом, но пока не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2018, 18:34 |
|
POST запрос с Request Payload
|
|||
---|---|---|---|
#18+
AndroidNeedHelpНа сколько я понял - это из за того, что я обращаюсь со стороннего сайта, и это типа защиты... Именно, почитайте еще про CSRF/XSRF. AndroidNeedHelpПодскажите, есть шансы её обойти? Из браузера - никаких. AndroidNeedHelpПока буду искать решение... ...умрете от старости. Ну ладно-ладно. Вам придется делать отдельный скрипт-транслятор, который будет использовать curl для доступа к нужному сайту - авторизовываться, если нужно, хранить кукисы и прочее. Примеров использования curl полно. А AJAXом обращаться уже к этому скрипту. P.S. Напрямую из JS через AJAX можно обращаться только в рамках домена, или если на внешних доменах установлен специальный заголовок. Ну или написать свой браузер и сделать его монополистом на рынке браузеров. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2018, 17:45 |
|
|
start [/forum/topic.php?fid=23&msg=39539799&tid=1460382]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 310ms |
total: | 479ms |
0 / 0 |