WinHTTPRequest.ResponseText не возвращает полный HTML? - PullRequest
0 голосов
/ 16 июня 2011

Я пытался использовать WinHTTP Request для получения веб-страницы (веб-сайта HTTPS) в VB.Net, и по какой-то причине он возвращал только частичный HTML, есть ли какие-либо ограничения по длине на количество символов, которое он может принять? Если да, могу ли я получить контент после, скажем, 10000-го символа?

Соответствующий код здесь:

         oRequest = New WinHttp.WinHttpRequest            
            oRequest.Open("GET", sQueryURL, False)            
            oRequest.SetTimeouts(0, 600000, 0, 0)
            oRequest.Send()
            If oRequest.Status = "200" Then                
                Debug.Print(oRequest.ResponseText)
            Else

            End If

1 Ответ

1 голос
/ 16 июня 2011

Прошло много времени с тех пор, как я использовал WinHttpRequest, но я полагаю, что как только вы прочитаете ResponseText, WinHttpRequest откажется от обработки ответа. Поскольку вы читаете ответ правильно, я думаю, что полный ответ не пришел к тому времени, когда вы печатаете ResponseText!

Я думаю, у вас есть 2 варианта:

  1. Используйте WinHttpRequest.WaitForResponse(), чтобы дождаться готовности всего ответа
  2. Используйте WinHttpRequest.ResponseStream для обработки ответа в чанках (вам нужно преобразовать чанки из байтов в читаемый текст)

Я не могу сказать, используете ли вы VB.Net, но если это так: рассмотрите возможность использования System.Web.HttpRequest . Интерфейс почти такой же, и вам будет легче находить рабочие примеры и советы.

...