İngilizce dilinde oku

Aracılığıyla paylaş


FileWebRequest.EndGetRequestStream(IAsyncResult) Yöntem

Tanım

Önemli

Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.

Uygulamanın veri yazmak için kullandığı bir Stream örnek için zaman uyumsuz isteği sonlandırır.

C#
public override System.IO.Stream EndGetRequestStream(IAsyncResult asyncResult);

Parametreler

asyncResult
IAsyncResult

Bir IAsyncResult akış için bekleyen isteğe başvuran bir.

Döndürülenler

Stream Uygulamanın veri yazmak için kullandığı nesne.

Özel durumlar

asyncResult, null değeridir.

Örnekler

Aşağıdaki örnek, bir Stream nesnenin zaman uyumsuz isteğini sonlandırmak için yöntemini kullanırEndGetRequestStream.

C#

public class RequestDeclare
{
     public FileWebRequest myFileWebRequest;	
     public String userinput;

    public RequestDeclare()
    {
        myFileWebRequest = null;
    }
}

class FileWebRequest_reqbeginend
{
    public static ManualResetEvent allDone = new ManualResetEvent(false);

    static void Main(string[] args)
    {
      if (args.Length < 1)
      {
        Console.WriteLine("\nPlease enter the file name as command line parameter:");
           Console.WriteLine("Usage:FileWebRequest_reqbeginend <systemname>/<sharedfoldername>/<filename>\nExample:FileWebRequest_reqbeginend shafeeque/shaf/hello.txt");
      }
      else
      {

        try
         {

              // Place a webrequest.
              WebRequest myWebRequest= WebRequest.Create("file://"+args[0]);
        
              // Create an instance of the 'RequestDeclare' and associate the 'myWebRequest' to it.		
              RequestDeclare requestDeclare = new RequestDeclare();
              requestDeclare.myFileWebRequest = (FileWebRequest)myWebRequest;
              // Set the 'Method' property of 'FileWebRequest' object to 'POST' method.
              requestDeclare.myFileWebRequest.Method="POST";
              Console.WriteLine("Enter the string you want to write into the file:");
              requestDeclare.userinput = Console.ReadLine();

              // Begin the Asynchronous request for getting file content using 'BeginGetRequestStream()' method .
              IAsyncResult r=(IAsyncResult) requestDeclare.myFileWebRequest.BeginGetRequestStream(new AsyncCallback(ReadCallback),requestDeclare);			
              allDone.WaitOne();

              Console.Read();
        }
        catch(ProtocolViolationException e)
        {
              Console.WriteLine("ProtocolViolationException is :"+e.Message);
        }
        catch(InvalidOperationException e)
        {
            Console.WriteLine("InvalidOperationException is :"+e.Message);
        }
        catch(UriFormatException e)
        {
            Console.WriteLine("UriFormatExceptionException is :"+e.Message);
         }
     }
    }

    private static void ReadCallback(IAsyncResult ar)
    {	

     try
  {

          // State of the request is asynchronous.
          RequestDeclare requestDeclare=(RequestDeclare) ar.AsyncState;
          FileWebRequest myFileWebRequest=requestDeclare.myFileWebRequest;
          String sendToFile = requestDeclare.userinput;

          // End the Asynchronus request by calling the 'EndGetRequestStream()' method.
          Stream readStream=myFileWebRequest.EndGetRequestStream(ar);
                    
          // Convert the string into byte array.
            
          ASCIIEncoding encoder = new ASCIIEncoding();
          byte[] byteArray = encoder.GetBytes(sendToFile);
        
          // Write to the stream.
          readStream.Write(byteArray,0,sendToFile.Length);
          readStream.Close();
          allDone.Set();
            
          Console.WriteLine("\nThe String you entered was successfully written into the file.");
      Console.WriteLine("\nPress Enter to continue.");	
     }
    catch(ApplicationException e)
      {
          Console.WriteLine("ApplicationException is :"+e.Message);
      }				
    }

Açıklamalar

yöntemi, EndGetRequestStream yöntemi tarafından BeginGetRequestStream başlatılan zaman uyumsuz bir akış isteğini tamamlar.

Not

Atık toplama ile ilgili zamanlama sorunlarını önlemek için, yöntemini çağırdıktan sonra yöntemi tarafından GetResponseStream döndürülen akışta yöntemini çağırarak Close yanıt akışını kapatabilirsinizEndGetResponse.

Şunlara uygulanır

Ürün Sürümler
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Ayrıca bkz.