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 | 非同期要求の作成