Partilhar via


FileWebRequest Classe

Definição

Fornece uma implementação do sistema de arquivos da classe WebRequest.

public ref class FileWebRequest : System::Net::WebRequest, System::Runtime::Serialization::ISerializable
public ref class FileWebRequest : System::Net::WebRequest
public class FileWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class FileWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
public class FileWebRequest : System.Net.WebRequest
type FileWebRequest = class
    inherit WebRequest
    interface ISerializable
[<System.Serializable>]
type FileWebRequest = class
    inherit WebRequest
    interface ISerializable
Public Class FileWebRequest
Inherits WebRequest
Implements ISerializable
Public Class FileWebRequest
Inherits WebRequest
Herança
Atributos
Implementações

Exemplos

O exemplo de código a seguir usa a classe FileWebRequest para acessar um recurso do sistema de arquivos.

// This program creates or open a text file in which it stores a string.
// Both file and string are passed by the user.
// Note. In order for this program to work, the folder containing the test file
// must be shared with its permissions set to allow write access.
#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Net;
ref class TestGetRequestStream
{
private:
   static FileWebRequest^ myFileWebRequest;
   static void showUsage()
   {
      Console::WriteLine( "\nPlease enter file name and timeout :" );
      Console::WriteLine( "Usage: cs_getrequeststream <systemname>/<sharedfoldername>/<filename> timeout" );
      Console::WriteLine( "Example: cs_getrequeststream ndpue/temp/hello.txt 1000" );
      Console::WriteLine( "Small timeout values (for instance 3 or less) cause a timeout exception." );
   }

   static void makeFileRequest( String^ fileName, int timeout )
   {
      try
      {
         
         // Create a Uri object.
         Uri^ myUrl = gcnew Uri( String::Format( "file://{0}", fileName ) );
         
         // Create a FileWebRequest object.
         myFileWebRequest = dynamic_cast<FileWebRequest^>(WebRequest::CreateDefault( myUrl ));
         
         // Set the timeout to the value selected by the user.
         myFileWebRequest->Timeout = timeout;
         
         // Set the Method property to POST
         myFileWebRequest->Method = "POST";
         
      }
      catch ( WebException^ e ) 
      {
         Console::WriteLine( "WebException: {0}", e->Message );
      }
      catch ( UriFormatException^ e ) 
      {
         Console::WriteLine( "UriFormatWebException: {0}", e->Message );
      }

   }

   static void writeToFile()
   {
      try
      {
         
         // Enter the string to write into the file.
         Console::WriteLine( "Enter the string you want to write:" );
         String^ userInput = Console::ReadLine();
         
         // Convert the string to Byte array.
         ASCIIEncoding^ encoder = gcnew ASCIIEncoding;
         array<Byte>^byteArray = encoder->GetBytes( userInput );
         
         // Set the ContentLength property.
         myFileWebRequest->ContentLength = byteArray->Length;
         String^ contentLength = myFileWebRequest->ContentLength.ToString();
         Console::WriteLine( "\nThe content length is {0}.", contentLength );
         
         // Get the file stream handler to write into the file.
         Stream^ readStream = myFileWebRequest->GetRequestStream();
         
         // Write to the file stream.
         // Note. In order for this to work the file must be accessible
         // on the network. This can be accomplished by setting the property
         // sharing of the folder containg the file. The permissions
         // can be set so everyone can modify the file.
         // FileWebRequest::Credentials property cannot be used for this purpose.
         readStream->Write( byteArray, 0, userInput->Length );
         Console::WriteLine( "\nThe String you entered was successfully written into the file." );
         
         readStream->Close();
      }
      catch ( WebException^ e ) 
      {
         Console::WriteLine( "The WebException: {0}", e->Message );
      }
      catch ( UriFormatException^ e ) 
      {
         Console::WriteLine( "The UriFormatWebException: {0}", e->Message );
      }

   }


public:
   static void Main()
   {
      array<String^>^args = Environment::GetCommandLineArgs();
      if ( args->Length < 3 )
            showUsage();
      else
      {
         makeFileRequest( args[ 1 ], Int32::Parse( args[ 2 ] ) );
         writeToFile();
      }
   }

};

int main()
{
   TestGetRequestStream::Main();
}
// This example creates or opens a text file and stores a string in it.
// Both the file and the string are passed by the user.
// Note. For this program to work, the folder containing the test file
// must be shared, with its permissions set to allow write access.
using System.Net;
using System;
using System.IO;
using System.Text;

namespace Mssc.PluggableProtocols.File
{
    class TestGetRequestStream
    {
        private static FileWebRequest myFileWebRequest;

        private static void showUsage ()
        {
            Console.WriteLine ("\nPlease enter file name and timeout :");
            Console.WriteLine ("Usage: cs_getrequeststream <systemname>/<sharedfoldername>/<filename> timeout");
            Console.WriteLine ("Example: cs_getrequeststream ngetrequestrtream() ndpue/temp/hello.txt  1000");
            Console.WriteLine ("Small time-out values (for example, 3 or less) cause a time-out exception.");
        }

        private static void makeFileRequest (string fileName, int timeout)
        {
            try
            {
                // Create a Uri object.
                Uri myUrl = new Uri ("file://" + fileName);

                // Create a FileWebRequest object.
                myFileWebRequest = (FileWebRequest)WebRequest.CreateDefault (myUrl);

                // Set the time-out to the value selected by the user.
                myFileWebRequest.Timeout = timeout;

                // Set the Method property to POST
                myFileWebRequest.Method = "POST";
            }
            catch (WebException e)
            {
                Console.WriteLine ("WebException: " + e.Message);
            }
            catch (UriFormatException e)
            {
                Console.WriteLine ("UriFormatWebException: " + e.Message);
            }
        }

        private static void writeToFile ()
        {
            try
            {
                // Enter the string to write to the file.
                Console.WriteLine ("Enter the string you want to write:");

                string userInput = Console.ReadLine ();

                // Convert the string to a byte array.
                ASCIIEncoding encoder = new ASCIIEncoding ();
                byte[] byteArray = encoder.GetBytes (userInput);

                // Set the ContentLength property.
                myFileWebRequest.ContentLength = byteArray.Length;

                string contentLength = myFileWebRequest.ContentLength.ToString ();

                Console.WriteLine ("\nThe content length is {0}.", contentLength);

                // Get the file stream handler to write to the file.
                Stream readStream = myFileWebRequest.GetRequestStream ();

                // Write to the file stream.
                // Note.  For this to work, the file must be accessible
                // on the network. This can be accomplished by setting the property
                // sharing of the folder containg the file.
                // FileWebRequest.Credentials property cannot be used for this purpose.
                readStream.Write (byteArray, 0, userInput.Length);
                Console.WriteLine ("\nThe String you entered was successfully written to the file.");

                readStream.Close ();
            }
            catch (WebException e)
            {
                Console.WriteLine ("The WebException: " + e.Message);
            }
            catch (UriFormatException e)
            {
                Console.WriteLine ("The UriFormatWebException: " + e.Message);
            }
        }

        public static void Main (String[] args)
        {
            if (args.Length < 2)
            {
                showUsage ();
            }
            else
            {
                makeFileRequest (args[0], int.Parse (args[1]));
                writeToFile ();
            }
        }
    }
}
'
' This example creates or opens a text file and stores a string in it. 
' Both the file and the string are passed by the user.
' Note. For this program to work, the folder containing the test file
' must be shared, with its permissions set to allow write access. 

Imports System.Net
Imports System.IO
Imports System.Text

Namespace Mssc.PluggableProtocols.File

    Module TestGetRequestStream

        Class TestGetRequestStream

            Private Shared myFileWebRequest As FileWebRequest

            ' Show how to use this program.
            Private Shared Sub showUsage()
                Console.WriteLine(ControlChars.Lf + "Please enter file name and timeout :")
                Console.WriteLine("Usage: vb_getrequeststream <systemname>/<sharedfoldername>/<filename> timeout")
                Console.WriteLine("Example: vb_getrequeststream ngetrequestrtream() ndpue/temp/hello.txt  1000")
                Console.WriteLine("Small time-out values (for example, 3 or less) cause a time-out exception.")
            End Sub

            Private Shared Sub makeFileRequest(ByVal fileName As String, ByVal timeout As Integer)
                Try
                    ' Create a Uri object.to access the file requested by the user. 
                    Dim myUrl As New Uri("file://" + fileName)

                    ' Create a FileWebRequest object.for the requeste file.
                    myFileWebRequest = CType(WebRequest.CreateDefault(myUrl), FileWebRequest)

                    ' Set the time-out to the value selected by the user.
                    myFileWebRequest.Timeout = timeout

                    ' Set the Method property to POST  
                    myFileWebRequest.Method = "POST"


                Catch e As WebException
                    Console.WriteLine(("WebException is: " + e.Message))
                Catch e As UriFormatException
                    Console.WriteLine(("UriFormatWebException is: " + e.Message))
                End Try

            End Sub

            Private Shared Sub writeToFile()
                Try
                    ' Enter the string to write to the file.
                    Console.WriteLine("Enter the string you want to write:")
                    Dim userInput As String = Console.ReadLine()

                    ' Convert the string to a byte array.
                    Dim encoder As New ASCIIEncoding
                    Dim byteArray As Byte() = encoder.GetBytes(userInput)

                    ' Set the ContentLength property.
                    myFileWebRequest.ContentLength = byteArray.Length

                    Dim contentLength As String = myFileWebRequest.ContentLength.ToString()

                    Console.WriteLine(ControlChars.Lf + "The content length is {0}.", contentLength)


                    ' Get the file stream handler to write to the file.
                    Dim readStream As Stream = myFileWebRequest.GetRequestStream()

                    ' Write to the stream. 
                    ' Note. For this to work the file must be accessible
                    ' on the network. This can be accomplished by setting the property
                    ' sharing of the folder containg the file.  
                    ' FileWebRequest.Credentials property cannot be used for this purpose.
                    readStream.Write(byteArray, 0, userInput.Length)


                    Console.WriteLine(ControlChars.Lf + "The String you entered was successfully written to the file.")

                    readStream.Close()

                Catch e As WebException
                    Console.WriteLine(("WebException is: " + e.Message))
                Catch e As UriFormatException
                    Console.WriteLine(("UriFormatWebException is: " + e.Message))
                End Try

            End Sub

            Public Shared Sub Main(ByVal args() As String)

                If args.Length < 2 Then
                    showUsage()
                Else
                    makeFileRequest(args(0), Integer.Parse(args(1)))
                    writeToFile()
                End If

            End Sub

        End Class



    End Module

End Namespace

Comentários

A classe FileWebRequest implementa a classe base WebRequestabstract para URIs (Uniform Resource Identifiers) que usam o esquema file:// para solicitar arquivos locais.

Não use o construtor FileWebRequest. Use o método WebRequest.Create para inicializar novas instâncias da classe FileWebRequest. Se o esquema de URI for file://, o método Create retornará um objeto FileWebRequest.

O método GetResponse faz uma solicitação síncrona para o arquivo especificado na propriedade RequestUri e retorna um objeto FileWebResponse que contém a resposta. Você pode fazer uma solicitação assíncrona para o arquivo usando os métodos BeginGetResponse e EndGetResponse.

Quando você deseja gravar dados em um arquivo, o método GetRequestStream retorna um Stream instância para gravar. Os métodos BeginGetRequestStream e EndGetRequestStream fornecem acesso assíncrono ao fluxo de dados de gravação.

A classe FileWebRequest depende da classe File para tratamento de erros e segurança de acesso ao código.

Construtores

FileWebRequest(SerializationInfo, StreamingContext)
Obsoleto.
Obsoleto.
Obsoleto.

Inicializa uma nova instância da classe FileWebRequest das instâncias especificadas das classes SerializationInfo e StreamingContext.

Propriedades

AuthenticationLevel

Obtém ou define valores que indicam o nível de autenticação e representação usados para essa solicitação.

(Herdado de WebRequest)
CachePolicy

Obtém ou define a política de cache para essa solicitação.

(Herdado de WebRequest)
ConnectionGroupName

Obtém ou define o nome do grupo de conexões para a solicitação. Essa propriedade é reservada para uso futuro.

ContentLength

Obtém ou define o comprimento do conteúdo dos dados que estão sendo enviados.

ContentType

Obtém ou define o tipo de conteúdo dos dados que estão sendo enviados. Essa propriedade é reservada para uso futuro.

CreatorInstance
Obsoleto.

Quando substituído em uma classe descendente, obtém o objeto de fábrica derivado da classe IWebRequestCreate usada para criar o WebRequest instanciado para fazer a solicitação para o URI especificado.

(Herdado de WebRequest)
Credentials

Obtém ou define as credenciais associadas a essa solicitação. Essa propriedade é reservada para uso futuro.

Headers

Obtém uma coleção dos pares nome/valor associados à solicitação. Essa propriedade é reservada para uso futuro.

ImpersonationLevel

Obtém ou define o nível de representação da solicitação atual.

(Herdado de WebRequest)
Method

Obtém ou define o método de protocolo usado para a solicitação. Essa propriedade é reservada para uso futuro.

PreAuthenticate

Obtém ou define um valor que indica se uma solicitação deve ser pré-autenticada. Essa propriedade é reservada para uso futuro.

Proxy

Obtém ou define o proxy de rede a ser usado para essa solicitação. Essa propriedade é reservada para uso futuro.

RequestUri

Obtém o URI (Uniform Resource Identifier) da solicitação.

Timeout

Obtém ou define o período de tempo até que a solicitação chegue ao fim.

UseDefaultCredentials

Sempre lança um NotSupportedException.

UseDefaultCredentials

Quando substituído em uma classe descendente, obtém ou define um valor Boolean que controla se DefaultCredentials são enviados com solicitações.

(Herdado de WebRequest)

Métodos

Abort()

Cancela uma solicitação para um recurso da Internet.

Abort()

Anula a solicitação.

(Herdado de WebRequest)
BeginGetRequestStream(AsyncCallback, Object)

Inicia uma solicitação assíncrona para um objeto Stream a ser usado para gravar dados.

BeginGetResponse(AsyncCallback, Object)

Inicia uma solicitação assíncrona para um recurso do sistema de arquivos.

CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
EndGetRequestStream(IAsyncResult)

Encerra uma solicitação assíncrona para uma instância de Stream que o aplicativo usa para gravar dados.

EndGetResponse(IAsyncResult)

Encerra uma solicitação assíncrona para um recurso do sistema de arquivos.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Obsoleto.

Popula um SerializationInfo com os dados necessários para serializar o objeto de destino.

GetObjectData(SerializationInfo, StreamingContext)
Obsoleto.

Popula um SerializationInfo com os dados necessários para serializar o objeto de destino.

(Herdado de WebRequest)
GetRequestStream()

Retorna um objeto Stream para gravar dados no recurso do sistema de arquivos.

GetRequestStreamAsync()

Retorna um fluxo para gravar dados no recurso do sistema de arquivos como uma operação assíncrona.

GetRequestStreamAsync()

Quando substituído em uma classe descendente, retorna um Stream para gravar dados no recurso da Internet como uma operação assíncrona.

(Herdado de WebRequest)
GetResponse()

Retorna uma resposta a uma solicitação do sistema de arquivos.

GetResponseAsync()

Retorna uma resposta a uma solicitação do sistema de arquivos como uma operação assíncrona.

GetResponseAsync()

Quando substituído em uma classe descendente, retorna uma resposta a uma solicitação da Internet como uma operação assíncrona.

(Herdado de WebRequest)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida dessa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

ISerializable.GetObjectData(SerializationInfo, StreamingContext)
Obsoleto.

Popula um objeto SerializationInfo com os dados necessários para serializar o FileWebRequest.

Aplica-se a

Confira também