Pregunta

Traté de usar la solicitud WinHTTP para recuperar una página web (sitio web HTTPS) en VB.NET y por alguna razón solo estaba devolviendo el HTML parcial, ¿hay alguna restricción de longitud en la cantidad de caracteres que podría tomar? Si es así, ¿puedo obtener el contenido después de, por ejemplo, 10000 ° personaje?

El código relevante está aquí:

         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

¿Fue útil?

Solución

Ha pasado un tiempo desde que usé WinHttpRequest, pero creo que tan pronto como lees ResponseText, WinHttpRequest abandonará el procesamiento de la respuesta. ¡Desde que te estás sumergiendo bien al leer la respuesta, supongo que la respuesta completa no ha llegado cuando imprime Responsetxt!

Creo que tienes 2 opciones para probar:

  1. Usar WinHttpRequest.WaitForResponse() para esperar a que toda la respuesta esté lista
  2. Usar WinHttpRequest.ResponseStream Para procesar la respuesta en fragmentos (deberá convertir los trozos de bytes a texto legible)

No puedo decir si estás usando VB.NET, pero si lo estás: Considere usar System.web.httprequest. La interfaz es más o menos la misma y tendrá más fácil encontrar ejemplos y consejos de trabajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top