• 使用 BeginGetRequestStream 方法对流实例发出异步请求


    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(); }}
  • 相关阅读:
    [原] jQuery EasyUI 1.3.0 Demo合集、离线API、动态换肤
    软件版本解释
    HTML 服务器控件
    HTML 服务器控件
    软件版本解释
    软件版本解释
    软件项目版本号的命名规则及格式介绍
    HTML 服务器控件
    软件版本解释
    软件版本解释
  • 原文地址:https://www.cnblogs.com/jordan2009/p/1549652.html
Copyright © 2020-2023  润新知