Mega Code Archive

 
Categories / VB.Net / Network Remote
 

WebRequest BeginGetRequestStream provides an asynchronous version of the GetRequestStream method

Imports System Imports System.Net Imports System.IO Imports System.Text Imports System.Threading Imports Microsoft.VisualBasic Public Class RequestState     Public request As WebRequest     Public Sub New()         request = Nothing     End Sub ' New End Class ' RequestState Class WebRequest_BeginGetRequeststream     Public Shared allDone As New ManualResetEvent(False)     Shared Sub Main()             Dim myWebRequest As WebRequest = WebRequest.Create("http://www.domain.com/")             Dim myRequestState As New RequestState()             myRequestState.request = myWebRequest             myWebRequest.ContentType = "application/x-www-form-urlencoded"             myRequestState.request.Method = "POST"             Dim r As IAsyncResult = CType(myWebRequest.BeginGetRequestStream(AddressOf ReadCallback, myRequestState), IAsyncResult)             allDone.WaitOne()             Dim myWebResponse As WebResponse = myWebRequest.GetResponse()             Dim streamResponse As Stream = myWebResponse.GetResponseStream()             Dim streamRead As New StreamReader(streamResponse)             Dim readBuff(256) As [Char]             Dim count As Integer = streamRead.Read(readBuff, 0, 256)             While count > 0                 Dim outputData As New [String](readBuff, 0, count)                 Console.WriteLine(outputData)                 count = streamRead.Read(readBuff, 0, 256)             End While             streamResponse.Close()             streamRead.Close()              myWebResponse.Close()     End Sub      Private Shared Sub ReadCallback(asynchronousResult As IAsyncResult)             Dim myRequestState As RequestState = CType(asynchronousResult.AsyncState, RequestState)             Dim myWebRequest As WebRequest = myRequestState.request             Dim streamResponse As Stream = myWebRequest.EndGetRequestStream(asynchronousResult)             Dim postData As String = Console.ReadLine()             Dim encoder As New ASCIIEncoding()             Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)             streamResponse.Write(byteArray, 0, postData.Length)             streamResponse.Close()             allDone.Set()     End Sub  End Class