Partage via


FileWebRequest Classe

Définition

Fournit une implémentation du système de fichiers de la 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
Héritage
Attributs
Implémente

Exemples

L’exemple de code suivant utilise la classe FileWebRequest pour accéder à une ressource de système de fichiers.

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

Remarques

La classe FileWebRequest implémente la classe de base WebRequestabstract pour les URI (Uniform Resource Identifiers) qui utilisent le schéma de file:// pour demander des fichiers locaux.

N’utilisez pas le constructeur FileWebRequest. Utilisez la méthode WebRequest.Create pour initialiser de nouvelles instances de la classe FileWebRequest. Si le schéma d’URI est file://, la méthode Create retourne un objet FileWebRequest.

La méthode GetResponse effectue une requête synchrone pour le fichier spécifié dans la propriété RequestUri et retourne un objet FileWebResponse qui contient la réponse. Vous pouvez effectuer une requête asynchrone pour le fichier à l’aide des méthodes BeginGetResponse et EndGetResponse.

Lorsque vous souhaitez écrire des données dans un fichier, la méthode GetRequestStream retourne une instance de Stream à écrire. Les méthodes BeginGetRequestStream et EndGetRequestStream fournissent un accès asynchrone au flux de données d’écriture.

La classe FileWebRequest s’appuie sur la classe File pour la gestion des erreurs et la sécurité de l’accès au code.

Constructeurs

FileWebRequest(SerializationInfo, StreamingContext)
Obsolète.
Obsolète.
Obsolète.

Initialise une nouvelle instance de la classe FileWebRequest à partir des instances spécifiées des classes SerializationInfo et StreamingContext.

Propriétés

AuthenticationLevel

Obtient ou définit des valeurs indiquant le niveau d’authentification et d’emprunt d’identité utilisé pour cette requête.

(Hérité de WebRequest)
CachePolicy

Obtient ou définit la stratégie de cache pour cette requête.

(Hérité de WebRequest)
ConnectionGroupName

Obtient ou définit le nom du groupe de connexions pour la demande. Cette propriété est réservée à une utilisation ultérieure.

ContentLength

Obtient ou définit la longueur du contenu des données envoyées.

ContentType

Obtient ou définit le type de contenu des données envoyées. Cette propriété est réservée à une utilisation ultérieure.

CreatorInstance
Obsolète.

En cas de substitution dans une classe descendante, obtient l’objet factory dérivé de la classe IWebRequestCreate utilisée pour créer le WebRequest instancié pour effectuer la requête à l’URI spécifié.

(Hérité de WebRequest)
Credentials

Obtient ou définit les informations d’identification associées à cette requête. Cette propriété est réservée à une utilisation ultérieure.

Headers

Obtient une collection des paires nom/valeur associées à la requête. Cette propriété est réservée à une utilisation ultérieure.

ImpersonationLevel

Obtient ou définit le niveau d’emprunt d’identité de la requête actuelle.

(Hérité de WebRequest)
Method

Obtient ou définit la méthode de protocole utilisée pour la requête. Cette propriété est réservée à une utilisation ultérieure.

PreAuthenticate

Obtient ou définit une valeur qui indique s’il faut préauthentifier une requête. Cette propriété est réservée à une utilisation ultérieure.

Proxy

Obtient ou définit le proxy réseau à utiliser pour cette requête. Cette propriété est réservée à une utilisation ultérieure.

RequestUri

Obtient l’URI (Uniform Resource Identifier) de la requête.

Timeout

Obtient ou définit la durée jusqu’à ce que la requête expire.

UseDefaultCredentials

Lève toujours une NotSupportedException.

UseDefaultCredentials

En cas de substitution dans une classe descendante, obtient ou définit une valeur Boolean qui contrôle si DefaultCredentials sont envoyées avec des requêtes.

(Hérité de WebRequest)

Méthodes

Abort()

Annule une demande à une ressource Internet.

Abort()

Abandonne la demande.

(Hérité de WebRequest)
BeginGetRequestStream(AsyncCallback, Object)

Commence une demande asynchrone d’un objet Stream à utiliser pour écrire des données.

BeginGetResponse(AsyncCallback, Object)

Commence une requête asynchrone pour une ressource de système de fichiers.

CreateObjRef(Type)

Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
EndGetRequestStream(IAsyncResult)

Termine une requête asynchrone pour une instance de Stream utilisée par l’application pour écrire des données.

EndGetResponse(IAsyncResult)

Termine une requête asynchrone pour une ressource de système de fichiers.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetLifetimeService()
Obsolète.

Récupère l’objet de service de durée de vie actuel qui contrôle la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Obsolète.

Remplit une SerializationInfo avec les données nécessaires pour sérialiser l’objet cible.

GetObjectData(SerializationInfo, StreamingContext)
Obsolète.

Remplit une SerializationInfo avec les données nécessaires pour sérialiser l’objet cible.

(Hérité de WebRequest)
GetRequestStream()

Retourne un objet Stream pour écrire des données dans la ressource du système de fichiers.

GetRequestStreamAsync()

Retourne un flux pour écrire des données dans la ressource du système de fichiers en tant qu’opération asynchrone.

GetRequestStreamAsync()

En cas de substitution dans une classe descendante, retourne une Stream pour écrire des données dans la ressource Internet en tant qu’opération asynchrone.

(Hérité de WebRequest)
GetResponse()

Retourne une réponse à une demande de système de fichiers.

GetResponseAsync()

Retourne une réponse à une demande de système de fichiers en tant qu’opération asynchrone.

GetResponseAsync()

En cas de substitution dans une classe descendante, retourne une réponse à une requête Internet en tant qu’opération asynchrone.

(Hérité de WebRequest)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
InitializeLifetimeService()
Obsolète.

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l’objet MarshalByRefObject actuel.

(Hérité de MarshalByRefObject)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

ISerializable.GetObjectData(SerializationInfo, StreamingContext)
Obsolète.

Remplit un objet SerializationInfo avec les données requises pour sérialiser le FileWebRequest.

S’applique à

Voir aussi