#region 程序集 System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll
#endregion
using System.IO;
using System.Net.Cache;
using System.Security.Cryptography.X509Certificates;
namespace System.Net
{
//
// 摘要:
// 实现文件传输协议 (FTP) 客户端。
public sealed class FtpWebRequest : WebRequest
{
//
// 摘要:
// 定义所有 FTP 请求的默认缓存策略。
//
// 返回结果:
// System.Net.Cache.RequestCachePolicy,定义 FTP 请求的缓存策略。
//
// 异常:
// T:System.ArgumentNullException:
// 调用方试图将此属性设置为 null。
public static RequestCachePolicy DefaultCachePolicy { get; set; }
//
// 摘要:
// 获取或设置写入或读取流时的超时。
//
// 返回结果:
// 读取或写入超时之前的毫秒数。默认值为 300,000 毫秒(5 分钟)。
//
// 异常:
// T:System.InvalidOperationException:
// 已发送请求。
//
// T:System.ArgumentOutOfRangeException:
// 为 Set 操作指定的值小于或等于零,并且不等于 System.Threading.Timeout.Infinite。
public int ReadWriteTimeout { get; set; }
//
// 摘要:
// 总是引发 System.NotSupportedException。
//
// 返回结果:
// 总是引发 System.NotSupportedException。
//
// 异常:
// T:System.NotSupportedException:
// FTP 不支持内容类型信息。
public override string ContentType { get; set; }
//
// 摘要:
// 获取空 System.Net.WebHeaderCollection 对象。
//
// 返回结果:
// 一个空 System.Net.WebHeaderCollection 对象。
public override WebHeaderCollection Headers { get; set; }
//
// 摘要:
// 获取或设置 System.Boolean,它指定是否使用 SSL 连接。
//
// 返回结果:
// 如果控制和数据传输是加密的,则为 true;否则为 false。默认值为 false。
//
// 异常:
// T:System.InvalidOperationException:
// 到 FTP 服务器的连接已经建立。
public bool EnableSsl { get; set; }
//
// 摘要:
// 获取用于建立到 FTP 服务器的加密连接的证书。
//
// 返回结果:
// 包含客户端证书的 System.Security.Cryptography.X509Certificates.X509CertificateCollection
// 对象。
public X509CertificateCollection ClientCertificates { get; set; }
//
// 摘要:
// 获取或设置客户端应用程序的数据传输过程的行为。
//
// 返回结果:
// 如果客户端应用程序的数据传输过程侦听数据端口上的连接,则为 false;如果客户端应在数据端口上启动连接,则为 true。默认值为 true。
//
// 异常:
// T:System.InvalidOperationException:
// 对于一个已在进行的请求为此属性指定了一个新值。
public bool UsePassive { get; set; }
//
// 摘要:
// 获取或设置一个 System.Boolean 值,该值指定文件传输的数据类型。
//
// 返回结果:
// true,指示服务器要传输的是二进制数据;false,指示数据为文本。默认值为 true。
//
// 异常:
// T:System.InvalidOperationException:
// 对于一个已在进行的请求为此属性指定了一个新值。
public bool UseBinary { get; set; }
//
// 摘要:
// 获取或设置一个 System.Boolean 值,该值指定在请求完成之后是否关闭到 FTP 服务器的控制连接。
//
// 返回结果:
// 如果不应销毁到服务器的连接,则为 true;否则为 false。默认值为 true。
//
// 异常:
// T:System.InvalidOperationException:
// 对于一个已在进行的请求为此属性指定了一个新值。
public bool KeepAlive { get; set; }
//
// 摘要:
// 获取用于连接 FTP 服务器的 System.Net.ServicePoint 对象。
//
// 返回结果:
// 可用于自定义连接行为的 System.Net.ServicePoint 对象。
public ServicePoint ServicePoint { get; }
//
// 摘要:
// 获取或设置连接组的名称,该连接组包含用于发送当前请求的服务点。
//
// 返回结果:
// 包含连接组名称的 System.String 值。
//
// 异常:
// T:System.InvalidOperationException:
// 对于一个已在进行的请求为此属性指定了一个新值。
public override string ConnectionGroupName { get; set; }
//
// 摘要:
// 获取或设置用于与 FTP 服务器通信的代理。
//
// 返回结果:
// 负责与 FTP 服务器通信的 System.Net.IWebProxy 实例。
//
// 异常:
// T:System.ArgumentNullException:
// 此属性不能设置为 null。
//
// T:System.InvalidOperationException:
// 对于一个已在进行的请求为此属性指定了一个新值。
public override IWebProxy Proxy { get; set; }
//
// 摘要:
// 获取或设置被 System.Net.FtpWebRequest 类忽略的值。
//
// 返回结果:
// 应忽略的 System.Int64 值。
public override long ContentLength { get; set; }
//
// 摘要:
// 获取或设置请求所下载的文件的字节偏移量。
//
// 返回结果:
// 指定文件偏移量(以字节为单位)的 System.Int64 实例。默认值为零。
//
// 异常:
// T:System.InvalidOperationException:
// 对于一个已在进行的请求为此属性指定了一个新值。
//
// T:System.ArgumentOutOfRangeException:
// 为该属性指定的值小于 0。
public long ContentOffset { get; set; }
//
// 摘要:
// 总是引发 System.NotSupportedException。
//
// 返回结果:
// 总是引发 System.NotSupportedException。
//
// 异常:
// T:System.NotSupportedException:
// FTP 不支持预身份验证。
public override bool PreAuthenticate { get; set; }
//
// 摘要:
// 获取或设置等待请求的毫秒数。
//
// 返回结果:
// 一个 System.Int32 值,包含请求超时前等待的毫秒数。默认值为 System.Threading.Timeout.Infinite。
//
// 异常:
// T:System.ArgumentOutOfRangeException:
// 指定的值小于零,并且不为 System.Threading.Timeout.Infinite。
//
// T:System.InvalidOperationException:
// 对于一个已在进行的请求为此属性指定了一个新值。
public override int Timeout { get; set; }
//
// 摘要:
// 获取此实例所请求的 URI。
//
// 返回结果:
// System.Uri 实例,标识使用文件传输协议访问的资源。
public override Uri RequestUri { get; }
//
// 摘要:
// 获取或设置用于与 FTP 服务器通信的凭据。
//
// 返回结果:
// System.Net.ICredentials 实例;如果还未设置该属性,则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// 为 Set 操作指定的值为 null。
//
// T:System.ArgumentException:
// 为 Set 操作指定了 System.Net.NetworkCredential 以外的 System.Net.ICredentials 类型。
//
// T:System.InvalidOperationException:
// 对于一个已在进行的请求为此属性指定了一个新值。
public override ICredentials Credentials { get; set; }
//
// 摘要:
// 获取或设置重命名文件的新名称。
//
// 返回结果:
// 重命名文件的新名称。
public string RenameTo { get; set; }
//
// 摘要:
// 获取或设置要发送到 FTP 服务器的命令。
//
// 返回结果:
// System.String 值,包含要发送到服务器的 FTP 命令。默认值为 System.Net.WebRequestMethods.Ftp.DownloadFile。
//
// 异常:
// T:System.InvalidOperationException:
// 对于一个已在进行的请求为此属性指定了一个新值。
//
// T:System.ArgumentException:
// 此方法无效。- 或 -不支持此方法。- 或 -指定了多个方法。
public override string Method { get; set; }
//
// 摘要:
// 总是引发 System.NotSupportedException。
//
// 返回结果:
// 总是引发 System.NotSupportedException。
//
// 异常:
// T:System.NotSupportedException:
// FTP 不支持默认凭据。
public override bool UseDefaultCredentials { get; set; }
//
// 摘要:
// 终止异步 FTP 操作。
public override void Abort();
//
// 摘要:
// 开始以异步方式打开请求的内容流以便写入。
//
// 参数:
// callback:
// 一个 System.AsyncCallback 委托,它引用操作完成时要调用的方法。
//
// state:
// 一个用户定义对象,其中包含该操作的相关信息。操作完成时,此对象传递给了 callback 委托。
//
// 返回结果:
// System.IAsyncResult 实例,指示操作的状态。
//
// 异常:
// T:System.InvalidOperationException:
// 此前对此方法或 System.Net.FtpWebRequest.GetRequestStream 的调用尚未完成。
//
// T:System.Net.WebException:
// 未能建立到 FTP 服务器的连接。
//
// T:System.Net.ProtocolViolationException:
// System.Net.FtpWebRequest.Method 属性没有设置为 System.Net.WebRequestMethods.Ftp.UploadFile。
public override IAsyncResult BeginGetRequestStream( AsyncCallback callback, object state );
//
// 摘要:
// 开始以异步方式向 FTP 服务器发送请求并从 FTP 服务器接收响应。
//
// 参数:
// callback:
// 一个 System.AsyncCallback 委托,它引用操作完成时要调用的方法。
//
// state:
// 一个用户定义对象,其中包含该操作的相关信息。操作完成时,此对象传递给了 callback 委托。
//
// 返回结果:
// System.IAsyncResult 实例,指示操作的状态。
//
// 异常:
// T:System.InvalidOperationException:
// 已经为此实例调用了 System.Net.FtpWebRequest.GetResponse 或 System.Net.FtpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)。
public override IAsyncResult BeginGetResponse( AsyncCallback callback, object state );
//
// 摘要:
// 结束由 System.Net.FtpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)
// 启动的挂起的异步操作。
//
// 参数:
// asyncResult:
// 在操作开始时返回的 System.IAsyncResult 对象。
//
// 返回结果:
// 与此实例关联的可写 System.IO.Stream 实例。
//
// 异常:
// T:System.ArgumentNullException:
// asyncResult 为 null。
//
// T:System.ArgumentException:
// 未能通过调用 System.Net.FtpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)
// 获取 asyncResult。
//
// T:System.InvalidOperationException:
// 已经为 asyncResult 所标识的操作调用了此方法。
public override Stream EndGetRequestStream( IAsyncResult asyncResult );
//
// 摘要:
// 结束由 System.Net.FtpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)
// 启动的挂起的异步操作。
//
// 参数:
// asyncResult:
// 在操作开始时返回的 System.IAsyncResult。
//
// 返回结果:
// 包含一个 System.Net.FtpWebResponse 实例的 System.Net.WebResponse 引用。此对象包含 FTP 服务器对请求的响应。
//
// 异常:
// T:System.ArgumentNullException:
// asyncResult 为 null。
//
// T:System.ArgumentException:
// 未能通过调用 System.Net.FtpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)
// 获取 asyncResult。
//
// T:System.InvalidOperationException:
// 已经为 asyncResult 所标识的操作调用了此方法。
public override WebResponse EndGetResponse( IAsyncResult asyncResult );
//
// 摘要:
// 检索用于向 FTP 服务器上载数据的流。
//
// 返回结果:
// 可写 System.IO.Stream 实例,用于存储要由当前请求发送到服务器的数据。
//
// 异常:
// T:System.InvalidOperationException:
// System.Net.FtpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)
// 已被调用并且尚未完成。- 或 -HTTP 代理被启用,而您尝试使用 FTP 命令而非 System.Net.WebRequestMethods.Ftp.DownloadFile、System.Net.WebRequestMethods.Ftp.ListDirectory
// 或 System.Net.WebRequestMethods.Ftp.ListDirectoryDetails。
//
// T:System.Net.WebException:
// 未能建立到 FTP 服务器的连接。
//
// T:System.Net.ProtocolViolationException:
// System.Net.FtpWebRequest.Method 属性未设置为 System.Net.WebRequestMethods.Ftp.UploadFile
// 或 System.Net.WebRequestMethods.Ftp.AppendFile。
public override Stream GetRequestStream();
//
// 摘要:
// 返回 FTP 服务器响应。
//
// 返回结果:
// 包含一个 System.Net.FtpWebResponse 实例的 System.Net.WebResponse 引用。此对象包含 FTP 服务器对请求的响应。
//
// 异常:
// T:System.InvalidOperationException:
// 已经为此实例调用了 System.Net.FtpWebRequest.GetResponse 或 System.Net.FtpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)。-
// 或 -HTTP 代理被启用,而您尝试使用 FTP 命令而非 System.Net.WebRequestMethods.Ftp.DownloadFile、System.Net.WebRequestMethods.Ftp.ListDirectory
// 或 System.Net.WebRequestMethods.Ftp.ListDirectoryDetails。
//
// T:System.Net.WebException:
// System.Net.FtpWebRequest.EnableSsl 设置为 true,但服务器不支持此功能。
public override WebResponse GetResponse();
}
}