FtpWebRequest.BeginGetRequestStream(AsyncCallback, Object) 方法      
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
开始以异步方式打开请求的内容流以便写入。
public:
 override IAsyncResult ^ BeginGetRequestStream(AsyncCallback ^ callback, System::Object ^ state);public override IAsyncResult BeginGetRequestStream(AsyncCallback? callback, object? state);public override IAsyncResult BeginGetRequestStream(AsyncCallback callback, object state);override this.BeginGetRequestStream : AsyncCallback * obj -> IAsyncResultPublic Overrides Function BeginGetRequestStream (callback As AsyncCallback, state As Object) As IAsyncResult参数
- callback
- AsyncCallback
一个 AsyncCallback 委托,它引用操作完成时要调用的方法。
- state
- Object
一个用户定义对象,其中包含操作的相关信息。 操作完成时,此对象传递给 callback 委托。
返回
IAsyncResult 实例,指示操作的状态。
例外
此前对此方法或 GetRequestStream() 的调用尚未完成。
未能建立到 FTP 服务器的连接。
Method 属性没有设置为 UploadFile。
示例
下面的代码示例演示如何启动异步操作以获取请求的流。 此代码示例是为类概述提供的更大示例的 FtpWebRequest 一部分。
// Command line arguments are two strings:
// 1. The url that is the name of the file being uploaded to the server.
// 2. The name of the file on the local machine.
//
public static void Main(string[] args)
{
    // Create a Uri instance with the specified URI string.
    // If the URI is not correctly formed, the Uri constructor
    // will throw an exception.
    ManualResetEvent waitObject;
    Uri target = new Uri (args[0]);
    string fileName = args[1];
    FtpState state = new FtpState();
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(target);
    request.Method = WebRequestMethods.Ftp.UploadFile;
    // This example uses anonymous logon.
    // The request is anonymous by default; the credential does not have to be specified.
    // The example specifies the credential only to
    // control how actions are logged on the server.
    request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
    // Store the request in the object that we pass into the
    // asynchronous operations.
    state.Request = request;
    state.FileName = fileName;
    // Get the event to wait on.
    waitObject = state.OperationComplete;
    // Asynchronously get the stream for the file contents.
    request.BeginGetRequestStream(
        new AsyncCallback (EndGetStreamCallback),
        state
    );
    // Block the current thread until all operations are complete.
    waitObject.WaitOne();
    // The operations either completed or threw an exception.
    if (state.OperationException != null)
    {
        throw state.OperationException;
    }
    else
    {
        Console.WriteLine("The operation completed - {0}", state.StatusDescription);
    }
}
注解
必须通过调用 EndGetRequestStream 方法完成异步操作。 通常, EndGetRequestStream 由 引用 callback的方法调用。 若要确定操作的状态,请检查此方法返回的 IAsyncResult 对象中的属性。
此方法在等待流时不会阻止。 若要阻止,请调用 GetRequestStream 以代替此方法。
有关使用异步编程模型的详细信息,请参阅 异步调用同步方法。
备注
当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪。
调用方说明
此方法生成网络流量。