Compartir a través de


FileWebRequest Clase

Definición

Proporciona una implementación del sistema de archivos de la clase 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
Herencia
Atributos
Implementaciones

Ejemplos

En el ejemplo de código siguiente se usa la clase FileWebRequest para acceder a un recurso del sistema de archivos.

// 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

Comentarios

La clase FileWebRequest implementa la clase base WebRequestabstract para identificadores uniformes de recursos (URI) que usan el esquema de file:// para solicitar archivos locales.

No use el constructor FileWebRequest. Use el método WebRequest.Create para inicializar nuevas instancias de la clase FileWebRequest. Si el esquema de URI es file://, el método Create devuelve un objeto FileWebRequest.

El método GetResponse realiza una solicitud sincrónica para el archivo especificado en la propiedad RequestUri y devuelve un objeto FileWebResponse que contiene la respuesta. Puede realizar una solicitud asincrónica para el archivo mediante los métodos BeginGetResponse y EndGetResponse.

Cuando desea escribir datos en un archivo, el método GetRequestStream devuelve una instancia de Stream en la que escribir. Los métodos BeginGetRequestStream y EndGetRequestStream proporcionan acceso asincrónico al flujo de datos de escritura.

La clase FileWebRequest se basa en la clase File para el control de errores y la seguridad de acceso al código.

Constructores

FileWebRequest(SerializationInfo, StreamingContext)
Obsoletos.
Obsoletos.
Obsoletos.

Inicializa una nueva instancia de la clase FileWebRequest a partir de las instancias especificadas de las clases SerializationInfo y StreamingContext especificadas.

Propiedades

AuthenticationLevel

Obtiene o establece valores que indican el nivel de autenticación y suplantación que se usa para esta solicitud.

(Heredado de WebRequest)
CachePolicy

Obtiene o establece la directiva de caché para esta solicitud.

(Heredado de WebRequest)
ConnectionGroupName

Obtiene o establece el nombre del grupo de conexiones para la solicitud. Esta propiedad está reservada para uso futuro.

ContentLength

Obtiene o establece la longitud de contenido de los datos que se envían.

ContentType

Obtiene o establece el tipo de contenido de los datos que se envían. Esta propiedad está reservada para uso futuro.

CreatorInstance
Obsoletos.

Cuando se reemplaza en una clase descendiente, obtiene el objeto de fábrica derivado de la clase IWebRequestCreate utilizada para crear la WebRequest creada para realizar la solicitud en el URI especificado.

(Heredado de WebRequest)
Credentials

Obtiene o establece las credenciales asociadas a esta solicitud. Esta propiedad está reservada para uso futuro.

Headers

Obtiene una colección de los pares nombre-valor asociados a la solicitud. Esta propiedad está reservada para uso futuro.

ImpersonationLevel

Obtiene o establece el nivel de suplantación de la solicitud actual.

(Heredado de WebRequest)
Method

Obtiene o establece el método de protocolo utilizado para la solicitud. Esta propiedad está reservada para uso futuro.

PreAuthenticate

Obtiene o establece un valor que indica si se debe autenticar previamente una solicitud. Esta propiedad está reservada para uso futuro.

Proxy

Obtiene o establece el proxy de red que se va a usar para esta solicitud. Esta propiedad está reservada para uso futuro.

RequestUri

Obtiene el identificador uniforme de recursos (URI) de la solicitud.

Timeout

Obtiene o establece el período de tiempo hasta que se agota el tiempo de espera de la solicitud.

UseDefaultCredentials

Siempre inicia un NotSupportedException.

UseDefaultCredentials

Cuando se reemplaza en una clase descendiente, obtiene o establece un valor de Boolean que controla si DefaultCredentials se envían con solicitudes.

(Heredado de WebRequest)

Métodos

Abort()

Cancela una solicitud a un recurso de Internet.

Abort()

Anula la solicitud.

(Heredado de WebRequest)
BeginGetRequestStream(AsyncCallback, Object)

Comienza una solicitud asincrónica de un objeto Stream que se va a usar para escribir datos.

BeginGetResponse(AsyncCallback, Object)

Comienza una solicitud asincrónica para un recurso del sistema de archivos.

CreateObjRef(Type)

Crea un objeto que contiene toda la información pertinente necesaria para generar un proxy usado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
EndGetRequestStream(IAsyncResult)

Finaliza una solicitud asincrónica para una instancia de Stream que la aplicación usa para escribir datos.

EndGetResponse(IAsyncResult)

Finaliza una solicitud asincrónica para un recurso del sistema de archivos.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoletos.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Obsoletos.

Rellena un SerializationInfo con los datos necesarios para serializar el objeto de destino.

GetObjectData(SerializationInfo, StreamingContext)
Obsoletos.

Rellena un SerializationInfo con los datos necesarios para serializar el objeto de destino.

(Heredado de WebRequest)
GetRequestStream()

Devuelve un objeto Stream para escribir datos en el recurso del sistema de archivos.

GetRequestStreamAsync()

Devuelve una secuencia para escribir datos en el recurso del sistema de archivos como una operación asincrónica.

GetRequestStreamAsync()

Cuando se invalida en una clase descendiente, devuelve un Stream para escribir datos en el recurso de Internet como una operación asincrónica.

(Heredado de WebRequest)
GetResponse()

Devuelve una respuesta a una solicitud del sistema de archivos.

GetResponseAsync()

Devuelve una respuesta a una solicitud del sistema de archivos como una operación asincrónica.

GetResponseAsync()

Cuando se reemplaza en una clase descendiente, devuelve una respuesta a una solicitud de Internet como una operación asincrónica.

(Heredado de WebRequest)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

ISerializable.GetObjectData(SerializationInfo, StreamingContext)
Obsoletos.

Rellena un objeto SerializationInfo con los datos necesarios para serializar el FileWebRequest.

Se aplica a

Consulte también