FtpWebRequest.GetResponse 方法

定義

傳回 FTP 伺服器回應。

C#
public override System.Net.WebResponse GetResponse();

傳回

WebResponse 參考,包含 FtpWebResponse 執行個體。 這個物件包含 FTP 伺服器對要求的回應。

例外狀況

針對這個執行個體,已經呼叫 GetResponse()BeginGetResponse(AsyncCallback, Object)

-或-

HTTP Proxy 已啟用,但您嘗試使用 DownloadFileListDirectoryListDirectoryDetails 以外的 FTP 命令。

EnableSsl 設為 true,但伺服器不支援這項功能。

-或-

Timeout 已指定且已經逾時。

範例

下列程式代碼範例示範如何將檔案複製到要求的數據流,以及傳送將數據附加至伺服器的要求。 範例會呼叫 GetResponse 以傳送要求並封鎖,直到伺服器傳回響應為止。

C#
public static bool AppendFileOnServer(string fileName, Uri serverUri)
{
    // The URI described by serverUri should use the ftp:// scheme.
    // It contains the name of the file on the server.
    // Example: ftp://contoso.com/someFile.txt.
    // The fileName parameter identifies the file containing
    // the data to be appended to the file on the server.

    if (serverUri.Scheme != Uri.UriSchemeFtp)
    {
        return false;
    }
    // Get the object used to communicate with the server.
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
    request.Method = WebRequestMethods.Ftp.AppendFile;

    StreamReader sourceStream = new StreamReader(fileName);
    byte [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
    sourceStream.Close();
    request.ContentLength = fileContents.Length;

    // This example assumes the FTP site uses anonymous logon.
    request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
    Stream requestStream = request.GetRequestStream();
    requestStream.Write(fileContents, 0, fileContents.Length);
    requestStream.Close();
    FtpWebResponse response = (FtpWebResponse) request.GetResponse();

    Console.WriteLine("Append status: {0}",response.StatusDescription);

    response.Close();
    return true;
}

備註

若要存取 FTP 特定屬性,您必須將 WebResponse 此方法 FtpWebResponse傳回的物件轉換成 。

GetResponse 會導致建立控件連接,而且也可能建立數據連線。 GetResponse 封鎖直到收到回應為止。 若要避免這種情況,您可以呼叫 BeginGetResponseEndGetResponse 方法來取代 GetResponse,以異步方式執行這項作業。

Proxy如果已設定 屬性,則直接或在組態檔中,會透過 Proxy 與 FTP 伺服器的通訊。

WebException如果擲回 ,請使用Response例外狀況的 和 Status 屬性來判斷伺服器的回應。

在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱 .NET Framework 中的網路追蹤

備註

多個呼叫以 GetResponse 傳回相同的回應物件;不會重新發出要求。

給呼叫者的注意事項

此方法會產生網路流量。

適用於

產品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 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

另請參閱