Condividi tramite


FileWebRequest Classe

Definizione

Fornisce un'implementazione del file system della 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
Ereditarietà
Attributi
Implementazioni

Esempio

Nell'esempio di codice seguente viene usata la classe FileWebRequest per accedere a una risorsa del file system.

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

Commenti

La classe FileWebRequest implementa la classe di base WebRequestabstract per gli URI (Uniform Resource Identifier) che usano lo schema file:// per richiedere i file locali.

Non usare il costruttore FileWebRequest. Utilizzare il metodo WebRequest.Create per inizializzare nuove istanze della classe FileWebRequest. Se lo schema URI è file://, il metodo Create restituisce un oggetto FileWebRequest.

Il metodo GetResponse effettua una richiesta sincrona per il file specificato nella proprietà RequestUri e restituisce un oggetto FileWebResponse che contiene la risposta. È possibile effettuare una richiesta asincrona per il file usando i metodi BeginGetResponse e EndGetResponse.

Quando si desidera scrivere dati in un file, il metodo GetRequestStream restituisce un'istanza di Stream in cui scrivere. I metodi BeginGetRequestStream e EndGetRequestStream forniscono l'accesso asincrono al flusso di dati di scrittura.

La classe FileWebRequest si basa sulla classe File per la gestione degli errori e la sicurezza dell'accesso al codice.

Costruttori

FileWebRequest(SerializationInfo, StreamingContext)
Obsoleti.
Obsoleti.
Obsoleti.

Inizializza una nuova istanza della classe FileWebRequest dalle istanze specificate delle classi SerializationInfo e StreamingContext.

Proprietà

AuthenticationLevel

Ottiene o imposta valori che indicano il livello di autenticazione e rappresentazione utilizzati per questa richiesta.

(Ereditato da WebRequest)
CachePolicy

Ottiene o imposta i criteri di cache per questa richiesta.

(Ereditato da WebRequest)
ConnectionGroupName

Ottiene o imposta il nome del gruppo di connessione per la richiesta. Questa proprietà è riservata per un uso futuro.

ContentLength

Ottiene o imposta la lunghezza del contenuto dei dati inviati.

ContentType

Ottiene o imposta il tipo di contenuto dei dati inviati. Questa proprietà è riservata per un uso futuro.

CreatorInstance
Obsoleti.

In caso di override in una classe discendente, ottiene l'oggetto factory derivato dalla classe IWebRequestCreate utilizzata per creare l'WebRequest creata un'istanza per effettuare la richiesta all'URI specificato.

(Ereditato da WebRequest)
Credentials

Ottiene o imposta le credenziali associate a questa richiesta. Questa proprietà è riservata per un uso futuro.

Headers

Ottiene una raccolta delle coppie nome/valore associate alla richiesta. Questa proprietà è riservata per un uso futuro.

ImpersonationLevel

Ottiene o imposta il livello di rappresentazione per la richiesta corrente.

(Ereditato da WebRequest)
Method

Ottiene o imposta il metodo di protocollo utilizzato per la richiesta. Questa proprietà è riservata per un uso futuro.

PreAuthenticate

Ottiene o imposta un valore che indica se preautenticare una richiesta. Questa proprietà è riservata per un uso futuro.

Proxy

Ottiene o imposta il proxy di rete da utilizzare per questa richiesta. Questa proprietà è riservata per un uso futuro.

RequestUri

Ottiene l'URI (Uniform Resource Identifier) della richiesta.

Timeout

Ottiene o imposta l'intervallo di tempo fino al timeout della richiesta.

UseDefaultCredentials

Genera sempre un NotSupportedException.

UseDefaultCredentials

In caso di override in una classe discendente, ottiene o imposta un valore Boolean che controlla se DefaultCredentials vengono inviati con le richieste.

(Ereditato da WebRequest)

Metodi

Abort()

Annulla una richiesta a una risorsa Internet.

Abort()

Interrompe la richiesta.

(Ereditato da WebRequest)
BeginGetRequestStream(AsyncCallback, Object)

Avvia una richiesta asincrona per un oggetto Stream da utilizzare per scrivere dati.

BeginGetResponse(AsyncCallback, Object)

Avvia una richiesta asincrona per una risorsa del file system.

CreateObjRef(Type)

Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto.

(Ereditato da MarshalByRefObject)
EndGetRequestStream(IAsyncResult)

Termina una richiesta asincrona per un'istanza di Stream usata dall'applicazione per scrivere dati.

EndGetResponse(IAsyncResult)

Termina una richiesta asincrona per una risorsa del file system.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleti.

Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Obsoleti.

Popola un SerializationInfo con i dati necessari per serializzare l'oggetto di destinazione.

GetObjectData(SerializationInfo, StreamingContext)
Obsoleti.

Popola un SerializationInfo con i dati necessari per serializzare l'oggetto di destinazione.

(Ereditato da WebRequest)
GetRequestStream()

Restituisce un oggetto Stream per la scrittura di dati nella risorsa del file system.

GetRequestStreamAsync()

Restituisce un flusso per la scrittura di dati nella risorsa del file system come operazione asincrona.

GetRequestStreamAsync()

Quando sottoposto a override in una classe discendente, restituisce un Stream per la scrittura di dati nella risorsa Internet come operazione asincrona.

(Ereditato da WebRequest)
GetResponse()

Restituisce una risposta a una richiesta di file system.

GetResponseAsync()

Restituisce una risposta a una richiesta di file system come operazione asincrona.

GetResponseAsync()

Quando sottoposto a override in una classe discendente, restituisce una risposta a una richiesta Internet come operazione asincrona.

(Ereditato da WebRequest)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia superficiale dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

ISerializable.GetObjectData(SerializationInfo, StreamingContext)
Obsoleti.

Popola un oggetto SerializationInfo con i dati necessari per serializzare l'FileWebRequest.

Si applica a

Vedi anche