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