ma io uso httpwebrequest e response ma purtroppo quando richiamo più volte la funzione mi da errore di timeout (una webexception) e non sono capace di scrivere il codice in modo da dire: "fino a quando il risultato non è ok riprova a fare il login post e i get", questo è il codice ke stò utilizzando:
Public Shared Function FormLoginGet(ByVal loginUri As String, ByVal loginData As String, ByVal requestUri As String)
Dim cookieContainer As New CookieContainer()
Dim richiesta1 As HttpWebRequest
richiesta1 = DirectCast(HttpWebRequest.Create(loginUri), HttpWebRequest)
richiesta1.CookieContainer = cookieContainer
richiesta1.Method = "POST"
richiesta1.ContentType = "application/x-www-form-urlencoded"
richiesta1.Timeout = 5000
Dim encoding As New ASCIIEncoding()
Dim loginDataBytes As Byte() = encoding.GetBytes(loginData)
richiesta1.ContentLength = loginDataBytes.Length
Dim stream As Stream
stream = richiesta1.GetRequestStream()
stream.Write(loginDataBytes, 0, loginDataBytes.Length)
stream.Close()
Dim risposta1 As HttpWebResponse
risposta1 = DirectCast(richiesta1.GetResponse(), HttpWebResponse)
Dim richiesta2 As HttpWebRequest
richiesta2 = DirectCast(HttpWebRequest.Create(requestUri), HttpWebRequest)
richiesta2.CookieContainer = cookieContainer
richiesta2.Method = "GET"
richiesta2.Timeout = 15000
Dim ok As Boolean = False
Dim risposta2 As WebResponse = richiesta2.GetResponse()
Dim sr As New StreamReader(risposta2.GetResponseStream, System.Text.Encoding.UTF8)
Dim risultato As String = sr.ReadToEnd()
sr.Close()
Return risultato
End Function
|