WinHttpRequest.ResponSeText ne renvoie pas le HTML complet?
-
28-10-2019 - |
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
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:
- Utilisation
WinHttpRequest.WaitForResponse()
attendre que toute la réponse soit prête - 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.