zoukankan      html  css  js  c++  java
  • 使用 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(); }}
  • 相关阅读:
    2021杭电多校4 1003/HDU 6987 Cycle Binary
    2021牛客多校5 G/nowcoder 11256 G Greater Integer, Better LCM
    2021牛客多校4 G/nowcoder 11255 G Product
    2021牛客多校4 H/nowcoder 11255 H Convolution
    FFT/NTT字符串模糊匹配
    Codeforces Harbour.Space Scholarship Contest 2021-2022 (open for everyone, rated, Div. 1 + Div. 2)
    2021杭电多校2 1006/HDU 6966 I love sequences
    2021牛客多校3 E/nowcoder 11254 E Math
    2021杭电多校1 1011/HDU 6960 Necklace of Beads
    linux操作系统使用小技巧,把程序和数据彻底分开
  • 原文地址:https://www.cnblogs.com/jordan2009/p/1549652.html
Copyright © 2011-2022 走看看