Partager via


Syntaxe des méthodes

Dernière modification : mardi 23 mars 2010

S’applique à : SharePoint Foundation 2010

Dans cet article
Incorporation d'une méthode dans une URL
Utilisation de la fonctionnalité CAML par lot pour envoyer plusieurs demandes
Syntaxe d'une commande POST pour les extensions serveur FrontPage de Microsoft
Forme d'une commande POST
Forme d'une réponse à une commande POST

Chacune des rubriques suivantes consacrées aux méthodes contient une section Syntaxe qui décrit la forme générale de l’appel de la méthode. Pour plus d’informations sur la façon de mettre en forme une méthode dans une publication, voir « Forme d’une commande POST » plus loin dans cette rubrique.

Il existe deux façons de publier des commandes de publication avec le protocole d'appel de procédure distante (RPC, Remote Procedure Call) de Microsoft SharePoint Foundation. Vous pouvez publier des commandes uniques en les incorporant dans une URL ou utiliser la fonctionnalité CAML (Collaborative Application Markup Language) pour envoyer plusieurs demandes par transaction.

Incorporation d'une méthode dans une URL

En incorporant une demande dans une URL vous pouvez émettre une méthode et les paramètres souhaités sur un serveur qui exécute SharePoint Foundation. La syntaxe est la suivante :

http://[site_name]/_vti_bin/owssvr.dll?Cmd=Method_name[&Parameter1=Value1&Parameter2=Value2...]

Pour plus d'informations, voir Protocole de l'URL.

Utilisation de la fonctionnalité CAML par lot pour envoyer plusieurs demandes

La publication d'une commande par POST nécessite de nombreux allers-retours vers le serveur. Pour réduire ces allers-retours, utilisez l'élément Batch CAML pour émettre plusieurs commandes par demande HTTP. Toutes les demandes doivent inclure une commande DisplayPost de niveau supérieur. La syntaxe utilisée dans l'URL POST pour toutes les demandes de méthodes émises vers SharePoint Foundation est la suivante :

POST /[Path]/[Subsite]/_vti_bin/owssvr.dll?Cmd=DisplayPost

Notes

Lorsque la demande n'est pas émise par l'intermédiaire d'un proxy, vous devez effectuer la publication directement sur l'URL serveur de la ressource. Le nom d'hôte ne fait pas partie d'une URL serveur.

La syntaxe qui permet d'émettre plusieurs demandes dans SharePoint Foundation est la suivante :

POST /[Path/][Subweb/]_vti_bin/_vti_aut/owssvr.dll?Cmd=DisplayPost
<?xml version="1.0" encoding="UTF-8"?>
<ows:Batch OnError="Return">
  <Method ID="String">
    <SetVar Name="Cmd">Method1_name</SetVar>
    <SetVar Name="Parameter1">Value1</SetVar>
      .
      .
      .
    <SetVar Name="ParameterN">ValueN</SetVar>
  </Method>
  <Method ID="String">
    <SetVar Name="Cmd">Method2_name</SetVar>
    <SetVar Name="Parameter1">Value1</SetVar>
      .
      .
      .
    <SetVar Name="ParameterN">ValueN</SetVar>
  </Method>
      .
      .
      .
  <Method ID="String">
    <SetVar Name="Cmd">MethodN_name</SetVar>
    <SetVar Name="Parameter1">Value1</SetVar>
      .
      .
      .
    <SetVar Name="ParameterN">ValueN</SetVar>
  </Method>
</ows:Batch>

Dans le code exemple suivant, l'élément Batch est utilisé pour créer deux listes personnalisées nommées Meeting Topics et Volunteers.

POST /STSServer1/_vti_bin/_vti_aut/owssvr.dll?Cmd=DisplayPost

<?xml version="1.0" encoding="UTF-8"?>
<ows:Batch OnError="Return"> 
  <Method ID="0,NewList"> 
    <SetVar Name="Cmd">NewList</SetVar> 
    <SetVar Name="ListTemplate">100</SetVar> 
    <SetVar Name="Title">Meeting Topics</SetVar> 
  </Method>
  <Method ID="1,NewList"> 
    <SetVar Name="Cmd">NewList</SetVar> 
    <SetVar Name="ListTemplate">100</SetVar> 
    <SetVar Name="Title">Volunteers</SetVar> 
  </Method> 
</ows:Batch>

Syntaxe d'une commande POST pour les extensions serveur FrontPage de Microsoft

Le nom de chaque méthode est composé du nom, suivi par un signe deux-points (:) et d'un espace. Vient ensuite la version_extension_serveur pour les extensions serveur FrontPage suivie des paramètres de la méthode. Chaque nom de paramètre contient une esperluette (&) en premier caractère. Le nom du paramètre est suivi immédiatement par un signe égal (=) sans espace avant. Le signe égal est suivi immédiatement par la valeur du paramètre. Par exemple :

&service_name=/fodo4

Les valeurs de paramètre respectent les conventions suivantes :

Police/code

Signification

Exemple

Italique

Variable

service_name

Chevrons (< >)

Contenu facultatif

<platform=système d'exploitation>

Texte brut

Littéraux

method

Symbole disjonctif (|)

Sépare les options de remplacement équivalentes

(true | false)

Pour plus d'informations sur les paramètres, voir la section Paramètres de la page de référence correspondant à la méthode donnée.

La plupart des commandes POST prennent la forme suivante dans le protocole RPC pour les extensions serveur FrontPage :

POST /directory_name/_vti_bin/_vti_aut/program_name.dll.
HTTP/1.0..Date:.Thu,.03.Dec.1998.19:09:16.GMT..

Dans le code exemple précédent, directory_name est le nom du répertoire racine du site Web et program_name est le nom du programme dans les extensions serveur FrontPage auquel la commande POST est adressée.

La chaîne de date est suivie par les lignes d'en-tête HTTP comme illustré dans l'exemple suivant :

MIME-Version:.1.0..User-Agent:.client_name/version..
Host:.host_name..Accept:.auth/sicily..
Authorization:.Basic.cm9iZjpUS3NvKjUw.
Content-Length:.64..
Content-Type:.application/x-www-form-urlencoded
X-Vermeer-Content-Type:.application/x-www-form-urlencoded
.
.
.

Ces lignes identifient l'application cliente chargée de la commande POST, la longueur et le type de la commande POST, ainsi que les informations de sécurité. Il est obligatoire de spécifier l'en-tête X-Vermeer-content-type, comme dans l'exemple. Les développeurs de sociétés tierces qui créent des applications utilisant des méthodes RPC pour l'interaction avec SharePoint Foundation doivent inclure cet en-tête dans leurs commandes POST. Si l'en-tête n'est pas inclus, l'opération RPC échoue.

La dernière partie de la commande POST contient la méthode ainsi que les paramètres sélectionnés et leurs valeurs. Par exemple :

method=open+service%3a4%2e0%2e1%2e2207&service%5fname=%2fallnew.

Forme d'une commande POST

La première ligne d'une commande POST contient la commande POST et la version HTTP en cours d'utilisation. La commande POST est suivie de plusieurs en-têtes HTTP, certains d'entre eux sont standard et d'autres sont spécifiques aux extensions serveur FrontPage. Une commande POST classique se présente comme suit :

POST /allnew/_vti_bin/_vti_aut/author.dll HTTP/1.0CRLF
Date: Thu, 03 Dec 1998 19:09:16 GMTCRLF
MIME-Version: 1.0CRLF
User-Agent: MSFrontPage/4.0CRLF
Host: seattleCRLF
Accept: auth/sicilyCRLF
Authorization: Basic cm9iZjpUS3NvKjUwCRLF
Content-Length: 343CRLF
Content-Type: application/x-www-form-urlencodedCRLF
X-Vermeer-Content-Type: application/x-www-form-urlencodedCRLF
CRLF
method=list+documents%3a4%2e0%2e1%2e2207&service%5fname=%2fallnew
&listHiddenDocs=false&listExplorerDocs=false&listRecurse=false&listFiles=true
&listFolders=true&listLinkInfo=true&listIncludeParent=true&listDerived=false
&listBorders=false&listChildWebs=true&initialUrl=&platform=WinI386
&folderList=%5b%3bTW%7c09+Nov+1998+17%3a03%3a25+%2d0000%5dLF

Chaque ligne d'en-tête et la ligne de commande POST doivent se terminer par un retour chariot/saut de ligne (CRLF). Notez que le CRLF est la séquence d'octets 0x0d, 0x0a, conforme au protocole HTTP.

Notes

Pour plus d'informations sur la commande POST et les en-têtes HTTP, voir la spécification HTTP 1.0 sur la page Web du World Wide Web Consortium. Cette spécification est utilisée par le protocole RPC.

Les en-têtes sont suivis d'un CRLF, suivi par la méthode de protocole RPC qui est envoyée aux extensions serveur FrontPage. Codez les espaces dans la méthode au moyen du signe plus (+). Codez les caractères non alphanumériques dans la méthode à l'aide du codage %XX (par exemple, la barre oblique inverse est codée sous la forme %5c). Ajoutez un saut de ligne (LF) à la fin des données de la méthode.

Forme d'une réponse à une commande POST

Lorsqu'une application cliente envoie une méthode à des extensions serveur FrontPage en utilisant une commande POST, les extensions serveur FrontPage envoient un OK HTTP standard pour confirmer la réception de la méthode. Les extensions serveur FrontPage répondent à la méthode en envoyant une page codée HTML à l'application cliente. Le code exemple suivant montre une réponse classique :

Content-type: application/x-vermeer-rpc..X-FrontPage-User-Name:
usernameCRLF
CRLF
<html><head><title>vermeer.RPC 
packet</title></head>LF<body>.
LF<p>method=list documents: 
6.0.x.xxxxLF<p>document_list=
LF<ul>
LF<ul>LF<li>document_name=Default.htm
LF<li>meta_info=
LF<ul>
LF<li>vti_author
LF<li>SR|author
LF<li>vti_title
LF<li>SW|Home Page
LF<li>vti_timecreated
LF<li>TR|10 Sep 1998 10:07:54 -0700
LF<li>vti_filesize
LF<li>IX|277
LF<li>vti_modifiedby
LF<li>SR|author
LF<li>vti_nexttolasttimemodified
LF<li>TR|10 Sep 1998 10:07:54 -0700
LF<li>vti_timelastmodified
LF<li>TR|10 Sep 1998 10:07:55 -0700
LF<li>vti_timelastwritten
LF<li>TX|10 Sep 1998 10:07:56 -0700
LF</ul>
LF</ul>
LF<ul>
LF<li>document_name=new1.htm
LF<li>meta_info=
LF<ul>
LF<li>vti_author
LF<li>SR|IUSR_author
. 
. 
.
</body>
</html>

Il existe trois variantes possibles pour les réponses. Le premier type de réponse est une page HTML qui inclut uniquement un message concernant la réussite ou l'échec de la méthode. Le deuxième est une page HTML qui inclut uniquement des méta-informations sur l'objet de la méthode. Enfin, le dernier type de réponse inclut à la fois un message et des méta-informations.

Dans toutes les variantes, la réponse commence par un en-tête Content_type. La page HTML qui suit doit contenir un saut de ligne (LF) avant chacune de ces balises HTML : <p>, <li>, <ul> et </ul>.

Pour plus d'informations sur la manière dont les réponses sont documentées, voir Valeurs de retour.