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

È stato utile?

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:

  1. Uso WinHttpRequest.WaitForResponse() aspettare che l'intera risposta sia pronta
  2. 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top