Nano Hash - криптовалюты, майнинг, программирование

Метод waitForResponse не работает с XMLHTTP

У меня есть код, в котором я объявил такую ​​​​переменную

Dim http As New XMLHTTP60

затем в коде я использовал эту строку

http.Open "POST", urlexample, False
http.Send strArg

Как я могу использовать waitForResponse для ожидания ответа сервера на запрос. Я пробовал зацикливаться после оператора .Send

While http.ReadyState <> 4: DoEvents: Wend

Но иногда это работает хорошо, а иногда ничего не возвращает.

18.02.2021

Ответы:


1

Просматривая объектную модель, кажется, что этот метод недоступен через MSXML2.XMLHTTP60, но есть с WinHttp.WinHttpRequest. Однако последний не имеет свойства ReadyState.

введите здесь описание изображения

Вам нужно будет изучить время ожидания по умолчанию и посмотреть, нужны ли вам SetTimeOuts для объекта WinHttp для получения более длительного времени.

Option Explicit
Public Sub testing()
    Dim http As winHttp.WinHttpRequest
    Set http = New winHttp.WinHttpRequest
  
    With http
        '.SetTimeouts ........
        .Open "GET", "http://books.toscrape.com/", True
        .setRequestHeader "User-Agent", "Mozilla/5.0"
        .send
        .waitForResponse 1000
    End With
    Stop
End Sub

Н.Б. Ваш запрос не будет асинхронным, если для асинхронного аргумента установлено значение FALSE в .Open


Интересно почитать: https://github.com/VBA-tools/VBA-Web/issues/337

Кажется, что VBA-Web Тима Холла был бы хорошим готовым способом сделать это.

WinHTTP

18.02.2021
  • Я на работе. Если это новый вопрос, пожалуйста, откройте его, так как другие могут ответить на него, прежде чем я посмотрю на него. 18.02.2021
  • У меня странный случай, иногда в ответе есть только одна таблица, а при переходе на сайт я нашел две таблицы. Так что, похоже, мне нужно подождать, пока он не загрузится должным образом (я не уверен). Я пытался увеличить тайм-аут до 3000, но иногда возникает такая же проблема. К вашему сведению, проблема возникает не постоянно. Но изредка встречается. Любые идеи? 18.02.2021
  • Вы установили асинхронность в True? Я не говорю, что это решение. Я спрашиваю, как вы сейчас работаете, пожалуйста? 18.02.2021
  • Я использую False в коде. Я попробую использовать True, чтобы увидеть, будет ли это иметь значение или нет. 18.02.2021
  • Я ожидаю, что True усугубит ситуацию! Посмотрите асинхронные ответы @Omegastripes для VBA. Я думаю, что он ответил на один из ваших вопросов раньше. 18.02.2021
  • Когда я использовал True, я получил ошибку в части .waitForResponse 18.02.2021
  • Давайте продолжим обсуждение в чате. 18.02.2021
  • Большое спасибо. Что эквивалентно этому ожиданию в пакете запросов в python? 20.02.2021
  • @YasserKhalil Эквивалент? Существуют тайм-ауты, но запросы не являются асинхронными. Асинхронность была перемещена: см. stackoverflow.com/questions/9110593/ 20.02.2021
  • Я не думаю, что асинхронность мне подходит. У меня проблема с конкретной веб-страницей, на которой есть одна или две таблицы (иногда одна таблица, а иногда две таблицы). Проблема возникает у меня, когда загружается только одна таблица, и когда я вручную захожу на эту веб-страницу, я нашел две таблицы. Это слишком странно, и эта веб-страница загружается с помощью команд javascript. Итак, я ищу что-то, что гарантирует полную загрузку веб-страницы. 20.02.2021
  • Что за веб-страница? Вы уверены, что одна таблица не загружена javascript? 20.02.2021
  • Я объяснил детали этой ссылки загружается полностью все время в запросах python"> stackoverflow.com/questions/66295832/ 20.02.2021
  • хорошо .. но как мне получить прямой URL-адрес проблемы, не читая весь код, пожалуйста? 20.02.2021
  • Я не знаю, так как страница связана с вводом номера дела и капчи, а затем переходом на конкретную страницу. Я поместил HTML для этой страницы. 20.02.2021
  • Давайте продолжим это обсуждение в чате. 20.02.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..