Winhttprequest.responseText Non restituisce l'intero HTML?
-
28-10-2019 - |
Domanda
Ho provato a utilizzare la richiesta WinHTTP per recuperare una pagina Web (sito Web HTTPS) in VB.NET e per qualche motivo stava solo restituendo l'HTML parziale, c'è qualche restrizione di lunghezza sul numero di caratteri che potrebbe prendere? In tal caso, posso ottenere il contenuto dopo, diciamo, 10000 ° carattere?
Il codice pertinente è qui:
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
Soluzione
È passato un po 'di tempo da quando ho usato WinhttPrequest, ma credo che non appena leggi la risposta, WinhttPrequest abbandonerà l'elaborazione della risposta. Dato che ti immergi nel leggere la risposta, immaginerei che la risposta completa non sia arrivata quando stampati RomesText!
Penso che tu abbia 2 opzioni da provare:
- Uso
WinHttpRequest.WaitForResponse()
aspettare che l'intera risposta sia pronta - Uso
WinHttpRequest.ResponseStream
Per elaborare la risposta in blocchi (dovrai convertire i pezzi dai byte a testo leggibile)
Non riesco a capire se stai usando vb.net, ma se lo stai: considera di usare System.web.httprequest. L'interfaccia è praticamente la stessa e avrai più tempo a trovare esempi di lavoro e consigli.