次の方法で共有


FileWebRequest.EndGetResponse メソッド

ファイル システム リソースへの非同期要求を終了します。

Overrides Public Function EndGetResponse( _
   ByVal asyncResult As IAsyncResult _) As WebResponse
[C#]
public override WebResponse EndGetResponse(IAsyncResultasyncResult);
[C++]
public: WebResponse* EndGetResponse(IAsyncResult* asyncResult);
[JScript]
public override function EndGetResponse(
   asyncResult : IAsyncResult) : WebResponse;

パラメータ

  • asyncResult
    応答の保留中の要求を参照する IAsyncResult

戻り値

ファイル システム リソースからの応答を格納する WebResponse

例外

例外の種類 条件
ArgumentNullException asyncResult が null 参照 (Visual Basic では Nothing) です。

解説

EndGetResponse メソッドは、 BeginGetResponse メソッドで開始したファイル システム リソースの非同期要求を完了します。

使用例

[Visual Basic, C#, C++] EndGetResponse メソッドを使用して、ファイル システム リソースに対する非同期要求を終了する例を次に示します。

 
Public Class RequestDeclare
    Public myFileWebRequest As FileWebRequest
     
    Public Sub New()
        myFileWebRequest = Nothing
    End Sub ' New
End Class ' RequestDeclare



Class FileWebRequest_resbeginend
    
    Public Shared allDone As New ManualResetEvent(False)
    
    ' Entry point which delegates to C-style main Private Function.
    Public Overloads Shared Sub Main()
        Main(GetCommandLineArgs())
    End Sub
    
    Overloads Shared Sub Main(args() As String)
        
        If args.Length < 2 Then
            Console.WriteLine(ControlChars.Cr + "Please enter the file name as command line parameter:")
            Console.WriteLine("Usage:FileWebRequest_resbeginend " + ChrW(60) + "systemname" + ChrW(62) + "/" + ChrW(60) + "sharedfoldername" + ChrW(62) + "/" + ChrW(60) + "filename" + ChrW(62) + ControlChars.Cr + "Example:FileWebRequest_resbeginend shafeeque/shaf/hello.txt")
        
        Else
            Try

                ' Place a webrequest.
                Dim myWebRequest As WebRequest = WebRequest.Create(("file://" + args(1)))
                ' Create an instance of the 'RequestDeclare' and associating the 'myWebRequest' to it.        
                Dim myRequestDeclare As New RequestDeclare()
                myRequestDeclare.myFileWebRequest = CType(myWebRequest, FileWebRequest)
                
                ' Begin the Asynchronous request for getting file content using 'BeginGetResponse()' method.    
                 Dim asyncResult As IAsyncResult = CType(myRequestDeclare.myFileWebRequest.BeginGetResponse(AddressOf RespCallback, myRequestDeclare), IAsyncResult)
                 allDone.WaitOne()

            
            Catch e As ArgumentNullException
                Console.WriteLine(("ArgumentNullException is :" + e.Message))
            Catch e As UriFormatException
                Console.WriteLine(("UriFormatException is :" + e.Message))
            End Try
        End If
    End Sub ' Main
    
    
    Private Shared Sub RespCallback(ar As IAsyncResult)



        ' State of request is asynchronous.
        Dim requestDeclare As RequestDeclare = CType(ar.AsyncState, RequestDeclare)
        
        Dim myFileWebRequest As FileWebRequest = requestDeclare.myFileWebRequest
        
        ' End the Asynchronus request by calling the 'EndGetResponse()' method.
        Dim myFileWebResponse As FileWebResponse = CType(myFileWebRequest.EndGetResponse(ar), FileWebResponse)
        
        ' Reade the response into Stream.
        Dim streamReader As New StreamReader(myFileWebResponse.GetResponseStream())

       
        Dim readBuffer(256) As [Char]
        
        Dim count As Integer = streamReader.Read(readBuffer, 0, 256)
        
        Console.WriteLine("The contents of the file are :"+ControlChars.Cr)
        
        While count > 0
            Dim str As New [String](readBuffer, 0, count)
            Console.WriteLine(str)
            count = streamReader.Read(readBuffer, 0, 256)
        End While
         streamReader.Close()
        ' Release the response object resources.
         myFileWebResponse.Close()
        allDone.Set()
        Console.WriteLine("File reading is over.")
    End Sub ' RespCallback 
End Class ' FileWebRequest_resbeginend


[C#] 

    public class RequestDeclare
    {
       public FileWebRequest myFileWebRequest;    
       
         public RequestDeclare()
        {
            myFileWebRequest = null;
        }
    }
    
    
    class FileWebRequest_resbeginend
    {

        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_resbeginend <systemname>/<sharedfoldername>/<filename>\nExample:FileWebRequest_resbeginend shafeeque/shaf/hello.txt");
            }  
            else
            {
              try
            {


                  // Place a 'Webrequest'.
                  WebRequest myWebRequest= WebRequest.Create("file://"+args[0]);
                  // Create an instance of the 'RequestDeclare' and associating the 'myWebRequest' to it.        
                  RequestDeclare myRequestDeclare = new RequestDeclare();
                  myRequestDeclare.myFileWebRequest = (FileWebRequest)myWebRequest;
              

                  // Begin the Asynchronous request for getting file content using 'BeginGetResponse()' method.    
                  IAsyncResult asyncResult =(IAsyncResult) myRequestDeclare.myFileWebRequest.BeginGetResponse(new AsyncCallback(RespCallback),myRequestDeclare);            
                  allDone.WaitOne();

            
               }
            catch(ArgumentNullException e)
               {
                  Console.WriteLine("ArgumentNullException is :"+e.Message);
               }
               catch(UriFormatException e)
              {
                  Console.WriteLine("UriFormatException is :"+e.Message);
              }
           }
        }

      private static void RespCallback(IAsyncResult ar)
      {    


               // State of request is asynchronous.
                RequestDeclare requestDeclare=(RequestDeclare) ar.AsyncState;
                    
                FileWebRequest  myFileWebRequest=requestDeclare.myFileWebRequest;
            
               // End the Asynchronus request by calling the 'EndGetResponse()' method.
                
                FileWebResponse myFileWebResponse = (FileWebResponse) myFileWebRequest.EndGetResponse(ar);


                // Reade the response into Stream.
                StreamReader streamReader= new StreamReader(myFileWebResponse.GetResponseStream());


                Char[] readBuffer = new Char[256];
                    
                int count = streamReader.Read( readBuffer, 0, 256 );

                Console.WriteLine("The contents of the file are :\n");
        
                while (count > 0) 
                {
                    String str = new String(readBuffer, 0, count);
                    Console.WriteLine(str);
                    count = streamReader.Read(readBuffer, 0, 256);
                }
                
                streamReader.Close();
                // Release the response object resources.
                myFileWebResponse.Close();
                allDone.Set();
                Console.WriteLine("File reading is over.");    
        }

    }

[C++] 
public __gc class RequestDeclare {
public:
   FileWebRequest*  myFileWebRequest;

   RequestDeclare() {
      myFileWebRequest = 0;
   }
};

__gc class FileWebRequest_resbeginend {
public:
   static ManualResetEvent* allDone = new ManualResetEvent(false);

   static void RespCallback(IAsyncResult* ar) {
      // State of request is asynchronous.
      RequestDeclare* requestDeclare = dynamic_cast<RequestDeclare*>(ar->AsyncState);

      FileWebRequest*  myFileWebRequest=requestDeclare->myFileWebRequest;

      // End the Asynchronus request by calling the 'EndGetResponse()' method.
      FileWebResponse* myFileWebResponse = dynamic_cast<FileWebResponse*> (myFileWebRequest->EndGetResponse(ar));

      // Reade the response into Stream.
      StreamReader* streamReader = new StreamReader(myFileWebResponse->GetResponseStream());

      Char readBuffer[] = new Char[256];
      int count = streamReader->Read(readBuffer, 0, 256);
      Console::WriteLine(S"The contents of the file are :\n");

      while (count > 0) {
         String* str = new String(readBuffer, 0, count);
         Console::WriteLine(str);
         count = streamReader->Read(readBuffer, 0, 256);
      }

      streamReader->Close();
      // Release the response Object* resources.
      myFileWebResponse->Close();
      allDone->Set();
      Console::WriteLine(S"File reading is over.");
   }
};

int main() {
   String* args[] = Environment::GetCommandLineArgs();
   if (args->Length < 2) {
      Console::WriteLine(S"\nPlease enter the file name as command line parameter:");
      Console::WriteLine(S"Usage:FileWebRequest_resbeginend <systemname>/<sharedfoldername>/<filename>\n");
      Console::WriteLine(S"Example:FileWebRequest_resbeginend shafeeque/shaf/hello.txt");
   } else {
      try {
         // Place a 'Webrequest'.
         WebRequest* myWebRequest= WebRequest::Create(String::Concat(S"file://", args[1]));
         // Create an instance of the 'RequestDeclare' and associating the 'myWebRequest' to it.
         RequestDeclare* myRequestDeclare = new RequestDeclare();
         myRequestDeclare->myFileWebRequest = dynamic_cast<FileWebRequest*>(myWebRequest);

         // Begin the Asynchronous request for getting file content using 'BeginGetResponse()' method.
         IAsyncResult* asyncResult = dynamic_cast<IAsyncResult*>
            (myRequestDeclare->myFileWebRequest->BeginGetResponse(new AsyncCallback(0, 
            &FileWebRequest_resbeginend::RespCallback), myRequestDeclare));
         FileWebRequest_resbeginend::allDone->WaitOne();
      } catch (ArgumentNullException* e) {
         Console::WriteLine(S"ArgumentNullException is : {0}", e->Message);
      } catch (UriFormatException* e) {
         Console::WriteLine(S"UriFormatException is : {0}", e->Message);
      }
   }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

FileWebRequest クラス | FileWebRequest メンバ | System.Net 名前空間 | GetResponse | BeginGetResponse | 非同期要求の作成