using
System;
using
System.Net;
using
System.IO;
using
System.Text;
using
System.Threading;
class
HttpWebRequestBeginGetRequest
{
public
static
ManualResetEvent allDone
=
new
ManualResetEvent(
false
);
public
static
void
Main()
{
//
Create a new HttpWebRequest object.
HttpWebRequest request
=
(HttpWebRequest) WebRequest.Create(
"
http://www.contoso.com/example.aspx
"
);
//
Set the ContentType property.
request.ContentType
=
"
application/x-www-form-urlencoded
"
;
//
Set the Method property to 'POST' to post data to the URI.
request.Method
=
"
POST
"
;
//
Start the asynchronous operation.
request.BeginGetRequestStream(
new
AsyncCallback(ReadCallback), request);
//
Keep the main thread from continuing while the asynchronous
//
operation completes. A real world application
//
could do something useful such as updating its user interface.
allDone.WaitOne();
//
Get the response.
HttpWebResponse response
=
(HttpWebResponse)request.GetResponse();
Stream streamResponse
=
response.GetResponseStream();
StreamReader streamRead
=
new
StreamReader(streamResponse);
string
responseString
=
streamRead.ReadToEnd();
Console.WriteLine(responseString);
//
Close the stream object.
streamResponse.Close(); streamRead.Close();
//
Release the HttpWebResponse.
response.Close();
}
private
static
void
ReadCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest request
=
(HttpWebRequest)asynchronousResult.AsyncState;
//
End the operation.
Stream postStream
=
request.EndGetRequestStream(asynchronousResult);
Console.WriteLine(
"
Please enter the input data to be posted:
"
);
string
postData
=
Console.ReadLine ();
//
Convert the string into a byte array.
byte
[] byteArray
=
Encoding.UTF8.GetBytes(postData);
//
Write to the request stream.
postStream.Write(byteArray,
0
, postData.Length); postStream.Close (); allDone.Set(); }}
转载于:https://www.cnblogs.com/jordan2009/archive/2009/08/19/1549652.html