Question

J'ai essayé d'utiliser la demande de WinHTTP pour récupérer une page Web (site Web HTTPS) dans VB.NET et pour une raison quelconque, il ne renvoyait que le HTML partiel, y a-t-il une restriction de longueur sur le nombre de caractères qu'il pourrait prendre? Si oui, puis-je obtenir le contenu après, disons, 10000e personnage?

Le code pertinent est ici:

         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

Était-ce utile?

La solution

Cela fait un moment que je n'ai pas utilisé WinHttpRequest, mais je crois que dès que vous lisez ResponseText, WinHttpRequest abandonnera la réponse. Depuis que vous plongez juste en lisant la réponse, je suppose que la réponse complète n'est pas arrivée au moment où vous imprimez ResponseText!

Je pense que vous avez 2 options à essayer:

  1. Utilisation WinHttpRequest.WaitForResponse() attendre que toute la réponse soit prête
  2. Utilisation WinHttpRequest.ResponseStream Pour traiter la réponse en morceaux (vous devrez convertir les morceaux des octets en texte lisible)

Je ne peux pas dire si vous utilisez vb.net, mais si vous êtes: envisagez d'utiliser System.Web.httpRequest. L'interface est à peu près la même et vous aurez plus de facilité à trouver des exemples de travail et des conseils.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top